Matplotlib 바그래프 문법정리

<문법>/파이썬|2021. 7. 22. 17:31
반응형

<그래프 두개로 그리기>

- 안 붙은 그래프

바그래프 가로길이 0.36 반띵하면0.18

i 를 x축 중심 이라고 하면 바1은 -0.18 ,바2는 +0.18 해서 두 그래프가 딱붙어서 출력

x= [ i-0.20 for i in range(7)]
x2= [ i+0.20 for i in range(7)]
x_middle= [ i for i in range(7)]

plt.bar(x, original,color='darkgray',width=0.36,label='label1', edgecolor='black')
plt.bar(x2, (a+b+c+d)/4 ,color='white',width=0.36,label='lable2',edgecolor='black',hatch='/')

- 붙은 그래프

바그래프 가로길이 0.36 반띵하면 .018

i 를 x축 중심 이라고 하면 바1은 -0.20 ,바2는 +0.20 해서 두 그래프두개 0.4 띄워서  출력

x= [ i-0.18 for i in range(7)]
x2= [ i+0.18 for i in range(7)]
x_middle= [ i for i in range(7)]

plt.bar(x, original,color='darkgray',width=0.36,label='label1', edgecolor='black')
plt.bar(x2, (a+b+c+d)/4 ,color='white',width=0.36,label='lable2',edgecolor='black',hatch='/')

 

<화살표 그리기>

- 바가 7개면 7번 for 문돌려주고

- plt.arrow ( 시작하는점x, 시작하는점 y , 시작점에서 x축방향으로 이동할만큼, 시작점에서 y축방향으로 이동할만큼  )

- head_width (화살표머리 가로) , head_length(화살표머리 세로) 

- fc, ec : 화살표머리랑 화살표대 색깔 

- width : 화살표대 넓이 (설정안하면 실선)

for i in range(7):
    plt.arrow(i+0.20, original[i], 0, -((original-(a+b+c+d)/4))[i]+0.8, head_width = 0.18, 
             head_length = 0.8,fc="k", ec="k",width=.06)
plt.show

<라벨달기>

- 바그래프안에 label = 'label1' 이런식으로 라벨달아주고

plt.bar(x, original,color='darkgray',width=0.36,label='label1', edgecolor='black')
plt.bar(x2, (a+b+c+d)/4 ,color='white',width=0.36,label='lable2',edgecolor='black',hatch='/',yerr=[(0,0,0,0,0,0,0),(original-(a+b+c+d)/4)] ,error_kw=dict(lw=2, capsize=0, capthick=2))

- 바그래프에 달아준 라벨을 표시해준다.

loc ( 그래프안에서 x , 그래프안에서 y )

plt.legend(fontsize=62,loc=(0.005,0.86))

 

<바그래프 칠하기,선긋기,테두리선>           

- edgecolor :바 테두리선 색 (안해주면 색없음)

- inewidth : 바 테두리선 두께

-  hatch : 빗금  ('/' , '//', '\\' 'x' ...)

- color : 바안에 칠하기 (검색ㄱ)

plt.bar(x, original,color='darkgray',width=0.36,label='label1', edgecolor='black',linewidth=0.5)
plt.bar(x2, (a+b+c+d)/4 ,color='white',width=0.36,label='lable2',edgecolor='black',linewidth=0.5,hatch='/',yerr=[(0,0,0,0,0,0,0),(original-(a+b+c+d)/4)] )

 

<x 축 돌리기>

- rotation = 95 (수직으로)

- rotation=0 (안돌림)

plt.xticks(x_middle,['a','b','c','d','e','f','g'])
plt.xticks(rotation=90,fontsize=80,ha="right")
# ha는 오른쪽을 기준으로 맞추라는뜻

 

<바그래프 위에 텍스트 표시>

o= ['%','%','%','%','%','%','%']
for i, v in enumerate(x2):
    plt.text(v, original[i], str (round(((original-(a+b+c+d)/4)/original*100)[i],1))+o[i] ,                 
             fontsize = 60, 
             color='black',
             #weight="bold",
             horizontalalignment='center',
             verticalalignment='bottom')

 

<바그래프 사이에 간격 표시하기>

- yerr=[(0,0,0,0,0,0,0), 간격 ] ,error_kw=dict(lw=2, capsize=3, capthick=2))

- capsize : 가로축 길이 (0으로 하면 걍 실선으로 표시됨)

- capthick : 가로축 두께

plt.bar(x, original,color='darkgray',width=0.36,label='label1', edgecolor='black')
plt.bar(x2, (a+b+c+d)/4 ,color='white',width=0.36,label='lable2',edgecolor='black',hatch='/',yerr=[(0,0,0,0,0,0,0),(original-(a+b+c+d)/4)] ,error_kw=dict(lw=2, capsize=0, capthick=2))

- yerr=[1,1,1,1,1,1,1] 로 바꾸면

<바그래프 x 축 rotation 위치 조정하기>

https://stackoverflow.com/questions/43152502/how-can-i-rotate-xticklabels-in-matplotlib-so-that-the-spacing-between-each-xtic  참조

 

반응형

댓글()