python - 绘制水平线(matplotlib)

标签 python matplotlib

我尝试运行代码:

fig, ax = plt.subplots()
ax.plot(x, y, color="g") 
ax.xaxis.set_major_locator(matplotlib.dates.YearLocator())
ax.xaxis.set_major_formatter(matplotlib.dates.DateFormatter('%Y'))
hlines=[40,50]
ax.hlines(hlines, 1, len(x), color='g')
plt.show()

我希望它能画出这样的东西: enter image description here 画图表没问题,可以,但是画水平线不行。

当我运行代码时,它会绘制:

enter image description here

附注x 以这种方式创建:日期到 matplotlib 日期

x.append(matplotlib.dates.date2num(datetime.strptime(date, '%Y%m%d')))

最佳答案

您正在绘制一条从 x-axis=1 到 x-axis=len(x) 的水平线,它们只是任意整数,不代表任何内容你的图表:你的x轴要大得多,因为你使用了matplotlib.dates.date2num。您需要正确分配水平线的范围。例如:

ax.hlines(hlines, min(x), max(x), color='g')

ax.hlines(hlines,
          matplotlib.dates.date2num(datetime.strptime(mindate, '%Y%m%d')),
          matplotlib.dates.date2num(datetime.strptime(maxdate, '%Y%m%d')),
          color='g')

或者你可以只使用axhline:

ax.axhline(40, color='g')
ax.axhline(50, color='g')

关于python - 绘制水平线(matplotlib),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56893085/

相关文章:

python - 从 Scikits-Image 初始化 RAG 图的方法

python - 将 azure blob 下载到本地文件系统时发生异常

python - 如何使子图的大小相等?

python - pylab.show() 忘记了之前的图

python - 如何使线程动画更快?

python - Pandas 中的自加入产生不需要的重复项

Python通过函数装饰器改造ast

matplotlib - Julia 和 Pyplot - 窗口锁定

python - 保存图形时颜色条无法完全显示

python - pyparsing如何从字符串创建语法对象