Matplotlib : 그래프 뒤에 그리드 선을 유지하지만 위에있는 y 및 x 축

luke_16

주 x 및 y 축 zorder를 엉망으로 만들지 않고 그래프 아래에 그리드 선을 그리는 데 어려움을 겪고 있습니다.

import matplotlib.pyplot as plt
import numpy as np


N = 5
menMeans = (20, 35, 30, 35, 27)
menStd =   (2, 3, 4, 1, 2)

ind = np.arange(N)  # the x locations for the groups
width = 0.35       # the width of the bars

fig, ax = plt.subplots()
rects1 = ax.bar(ind, menMeans, width, color='r', yerr=menStd, alpha=0.9, linewidth = 0,zorder=3)

womenMeans = (25, 32, 34, 20, 25)
womenStd =   (3, 5, 2, 3, 3)
rects2 = ax.bar(ind+width, womenMeans, width, color='y', yerr=womenStd, alpha=0.9, linewidth = 0,zorder=3)

# add some
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind+width)
ax.set_xticklabels( ('G1', 'G2', 'G3', 'G4', 'G5') )

ax.legend( (rects1[0], rects2[0]), ('Men', 'Women') )

fig.gca().yaxis.grid(True, which='major', linestyle='-', color='#D9D9D9',zorder=2, alpha = .9)
[line.set_zorder(4) for line in ax.lines]

def autolabel(rects):
    # attach some text labels
    for rect in rects:
        height = rect.get_height()
        ax.text(rect.get_x()+rect.get_width()/2., 1.05*height, '%d'%int(height),
                ha='center', va='bottom')

autolabel(rects1)
autolabel(rects2)

plt.show()

이 예제는 matplotlib 자체에서 가져 왔으며 문제를 표시하는 방법을 보여주기 위해 약간 조정했습니다. 이미지를 게시 할 수는 없지만 코드를 실행하면 막대가 가로 격자 선과 x 및 y 축 위에 표시되는 것을 볼 수 있습니다. 특히 틱이 막힐 때 x 및 y 축이 그래프에 의해 숨겨지는 것을 원하지 않습니다.

프란체스코 몬테 사노

나는 matplotlib 1.2.1, 1.3.1rc2 및 마스터를 시도했습니다 (06d014469fc5c79504a1b40e7d45bc33acc00773)

막대 위에 축 척추를 얻으려면 다음을 수행 할 수 있습니다.

for k, spine in ax.spines.items():  #ax.spines is a dictionary
    spine.set_zorder(10)

편집하다

틱 라인을 막대 위에 올릴 수없는 것 같습니다. 난 노력 했어

1. ax.tick_params(direction='in', length=10, color='k', zorder=10)
   #This increases the size of the lines to 10 points, 
   #but the lines stays hidden behind  the bars
2. for l in ax.yaxis.get_ticklines():
       l.set_zorder(10)

결과가없는 다른 방법. 막대를 그릴 때 위에 놓이고 zorder가 무시되는 것 같습니다.

해결 방법은 눈금 선을 바깥쪽으로 그리는 것입니다.

ax.tick_params(direction='out', length=4, color='k', zorder=10)

또는 안팎으로 direction='inout'

EDIT2

@tcaswell 댓글 후에 몇 가지 테스트를 수행했습니다.

경우 zorder에서 ax.bar기능 <= 2로 설정되며, 축이 ticklines 그리드 선 막대 위에 그려. valus가> 2.01 (축의 기본값)이면 막대가 축, 눈금 선 및 그리드 위에 그려집니다. 그런 다음 척추에 더 큰 값을 설정할 수 있지만 (위와 같이) zorder눈금 선 을 변경하려는 시도 는 무시됩니다 (해당 아티스트에서 값이 업데이트되지만).

내가 사용하는 시도했습니다 zorder=1에 대한 barzorder=0그리드를위한 그리드가 그려 위에 막대의. 따라서 zorder는 무시됩니다.

요약

눈금과 격자 zorder는 무시되고 기본값으로 유지되는 것 같습니다 . 나를 위해이 어떻게 든 관련 버그 bar또는 일부 patches.

BTW, 사용할 때 눈금 선에서 zorder를 성공적으로 변경 한 것을 기억합니다. imshow

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

단일 그래프에서 여러 그래프의 x 및 y 축에 레이블을 지정하는 방법

Excel 그래프에서 x 및 y 축 뒤집기

플롯 그래프에서 X 및 Y 축 선을 사라지게 하는 방법

x 축 및 y 축에 대한 데이터를 엉망으로 만드는 플로팅 선 그래프

선 그래프의 X 및 Y 축에 사용되는 Excel 행을 지정할 수없는 이유는 무엇입니까?

ggplot을 사용하는 막대 그래프 및 선 그래프에 대한 다중 y 축

Matplotlib : x / y 축이 같지만 하나는 y 축을 따라 다른 하나에서 시작하는 두 개의 막대 플롯을 그리는 방법

x 및 y 축 레이블의 텍스트 크기와 matplotlib 및 prettyplotlib 그래프의 제목을 더 크게 만드는 방법

차트를 그리기 위해 차트 js를 사용하고 있습니다. 나는 모든 것을 올바르게했지만 x 축과 y 축 레이블이 차트에 오지 않는 이유를 모르겠습니다. 아래 코드

Excel 2010에서 그래프의 X 및 Y 축을 바꾸는 방법

y 축에 정수를 사용하고 x 축에 문자열을 사용하는 선 그래프

위에 선이있는 다축 그래프. Matplotlib

matplotlib 막대 그래프 뒤에 그리드 선을 그리는 방법

Matplotlib에서 X 축에 평행 한 그래프 선

해당 x 및 y 축 값으로 그래프에 주석을 추가하는 방법-ggplot2?

실시간 파이썬에서 그래프의 y 및 x 축을 자동으로 조정하는 방법

선 및 보조 Y 축은 위에있는 선 차트가있는 플롯 막대 그래프에 표시되지 않습니다.

숫자 X 축을 사용하여 Excel에서 선 그래프 그리기

숫자 X 축을 사용하여 Excel에서 선 그래프 그리기

matplotlib-y 축의 그룹당 x 축에 막대 만들기

C # 양식에서 곡선의 X 및 Y 축 그리기

x축에 연도를, y축에 값을 표시하는 막대 그래프를 그리는 함수가 있습니까?

y 축을 가로 지르는 Excel에서 그래프를 만드는 방법

R Shiny ggplot2 전단지-선 그래프의 X 축에 여러 필드를 그리는 방법

x 축에 월 단위 시간, y 축에 발생 횟수를 사용하여 하나의 그래프에 여러 선 그리기

d3 그래프에서 y 축의 점 0에 추가 x 축을 그리는 방법

ggplot 그래프에서 y 및 x 축의 눈금과 숫자를 그리는 방법은 무엇입니까?

선 그래프의 Y 축에 단일 DataFrame의 두 열을 그리는 방법

선 그래프의 Y 축에 여러 팬더 열을 그리는 방법

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관