[英]Simplest histogram with dates as x-axis in matplotlib
I have been trying to properly display a simple histogram with dates as x-axis and integers as y-axis. 我一直在尝试正确地显示一个简单的直方图,其中日期作为x轴,整数作为y轴。 The example below happens to be a subplot (2 y-axis, 1 shared x-axis) but the problem is not there, it's rather the hist itself.
下面的示例恰好是一个子图(2个y轴,1个共享的x轴),但问题不存在,而是历史本身。
import datetime
import matplotlib
matplotlib.use('agg') # server no need to display graphics
import matplotlib.pyplot as plt
# x-axis is 3 consecutive dates (days)
now = datetime.datetime.now().date()
x = [now, now + datetime.timedelta(days=1), now + datetime.timedelta(days=2)]
# y1-axis is 3 numbers
y1 = [10, 0, 3]
y2 = [8, 0, 3]
fig, axarr = plt.subplots(2, sharex=True)
bins = range(1, len(x) + 1)
axarr[1].hist(y1, bins=len(x), edgecolor="k")
axarr[1].set_xticks(bins)
axarr[1].set_xticklabels(x)
axarr[1].set_yticks(range(0, max(y1) + 1))
# axarr[0] ommitted for simplicity
plt.savefig('a.png', bbox_inches='tight')
However the image I get is ... 但是我得到的图像是...
You probably want a bar
graph. 您可能需要
bar
。
import datetime
import matplotlib
matplotlib.use('agg') # server no need to display graphics
import matplotlib.pyplot as plt
# x-axis is 3 consecutive dates (days)
now = datetime.datetime.now().date()
x = [now, now + datetime.timedelta(days=1), now + datetime.timedelta(days=2)]
# y1-axis is 3 numbers
y1 = [10, 0, 3]
y2 = [8, 0, 3]
fig, axarr = plt.subplots(2, sharex=True)
bins = range(1, len(x) + 1)
axarr[1].bar(x, y1, edgecolor="k")
axarr[1].set_xticks(x)
axarr[1].set_xticklabels(x)
plt.savefig('a.png', bbox_inches='tight')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.