반응형
파이썬(Python)에서 바 그래프에서 바에 색깔을 입히거나 라벨링 등을 하려고 하려면 그래프를 구성하는 바를 반복문으로 돌려 처리하곤 한다. 예를 들면 아래와 같은 식이다.
bars = plt.bar(index, dfdate)
for rect in bars:
height = rect.get_height()
plt.text(rect.get_x() + rect.get_width()/2.0, height+20, '%d' % int(height), ha='center', va='bottom')
plt.title("제목", fontsize=20)
plt.show()
위의 예시에서 bars는 BarContainer이므로, 반복문을 통해 bar를 하나씩 뽑아낼 수 있다.
그런데 위의 예시와 달리, 그래프를 그리는 방식이나 라이브러리에 따라 가지고 있는 객체가 AxesSubplot인 경우가 있다. 아래와 같은 경우다.
ax = sns.countplot(x=col, data=targetData, ax=ax1)
for rect in ax:
# do something with rect
'''
TypeError: 'AxesSubplot' object is not iterable
'''
이 경우 반복문을 통해 bar를 얻어내려고 하면 에러가 난다.
이런 경우 아래와 같이 bar를 추출해서 사용할 수 있다.
ax = sns.countplot(x=col, data=targetData, ax=ax1)
bars = [rect for rect in ax.get_children() if isinstance(rect, mpl.patches.Rectangle)]
for rect in bars:
# do something with rect
반응형
'IT 실무' 카테고리의 다른 글
[파이썬] NaN 제외하고 unique 값 얻기 (0) | 2020.08.02 |
---|---|
[파이썬 트러블슈팅] TypeError: 'NoneType' object is not subscriptable(정렬 사용후) (0) | 2020.08.02 |
[파이썬 트러블슈팅] TypeError: cannot perform reduce with flexible type (0) | 2020.08.02 |
금융권에서 사용되는 시스템 간 연계 용어 (2) | 2019.12.26 |
9급 공무원 전산직(정보보호) 기출문제 (260) | 2018.12.18 |
댓글