반응형
matplotlib에서 여러 막대를 그리는 방법은 bar 함수를 여러 번 호출하려고 할 때 겹쳐지며 아래 그림에서 볼 수 있듯이 가장 높은 값인 빨간색 만 볼 수 있습니다. x 축에 날짜가있는 여러 막대를 어떻게 플로팅 할 수 있습니까?
지금까지 이것을 시도했습니다.
import matplotlib.pyplot as plt
import datetime
x = [
datetime.datetime(2011, 1, 4, 0, 0),
datetime.datetime(2011, 1, 5, 0, 0),
datetime.datetime(2011, 1, 6, 0, 0)
]
y = [4, 9, 2]
z = [1, 2, 3]
k = [11, 12, 13]
ax = plt.subplot(111)
ax.bar(x, y, width=0.5, color='b', align='center')
ax.bar(x, z, width=0.5, color='g', align='center')
ax.bar(x, k, width=0.5, color='r', align='center')
ax.xaxis_date()
plt.show()
알 겠어:
결과는 다음과 같아야하지만 날짜가 x 축에 있고 막대가 서로 옆에 있습니다.
해결 방법
import matplotlib.pyplot as plt
from matplotlib.dates import date2num
import datetime
x = [
datetime.datetime(2011, 1, 4, 0, 0),
datetime.datetime(2011, 1, 5, 0, 0),
datetime.datetime(2011, 1, 6, 0, 0)
]
x = date2num(x)
y = [4, 9, 2]
z = [1, 2, 3]
k = [11, 12, 13]
ax = plt.subplot(111)
ax.bar(x-0.2, y, width=0.2, color='b', align='center')
ax.bar(x, z, width=0.2, color='g', align='center')
ax.bar(x+0.2, k, width=0.2, color='r', align='center')
ax.xaxis_date()
plt.show()
"y 값도 겹칩니다"가 무엇을 의미하는지 모르겠습니다. 다음 코드가 문제를 해결합니까?
ax = plt.subplot(111)
w = 0.3
ax.bar(x-w, y, width=w, color='b', align='center')
ax.bar(x, z, width=w, color='g', align='center')
ax.bar(x+w, k, width=w, color='r', align='center')
ax.xaxis_date()
ax.autoscale(tight=True)
plt.show()
참조 페이지 https://stackoverflow.com/questions/14270391
반응형
'파이썬' 카테고리의 다른 글
파이썬 조건이 충족되는 경우에만 dict에 추가 (0) | 2021.01.27 |
---|---|
파이썬 Python 3에서 개별 바이트 반복 (0) | 2021.01.27 |
파이썬 python-requests를 사용하여 파일 크기를 가져 오면서 헤더 만 가져옵니다. (0) | 2021.01.27 |
파이썬 Python 캐싱 라이브러리가 있습니까? (0) | 2021.01.27 |
파이썬 Python에 비트 필드 유형이 있습니까? (0) | 2021.01.27 |
댓글