【发布时间】:2022-01-24 00:44:46
【问题描述】:
我是 Python 的新手,但慢慢就到了那里。我在尝试增加图表上的网格线数量时遇到问题。基本上,图表标记为 0-24(小时),但 x 轴仅每 5 小时(O、5、10、15、20)生成一个标签,每个专业都有一条网格线。理想情况下,我希望在收集实时数据时每隔一小时绘制一条网格线。
大部分代码都来自各种来源,但让我难过的一件事是如何配置网格..
编辑 - 根据要求,我的简化代码如下..
import numpy as np
import matplotlib.pyplot as plt
import time
timedata=[0.01,1.1,2.2,3.3,4.4,5.55,6.6,7.7,8.8,9.1,10.2,11.2,12.2,13.2,14.1,15.2,16.1,17.2,18.1,19.2,20.1,21.1,22.2,23.1]
#timedata is in decimal hours
bxdata=[10,10,20,20,20,30,30,30,40,40,40,30,30,30,20,20,30,30,20,20,40,50,30,24]
bydata=[20,10,20,30,20,30,30,30,5,40,40,30,5,30,20,20,30,35,20,20,5,50,30,24]
#draw the graph
fig, ax = plt.subplots(sharex=True, figsize=(12, 6))
x=np.arange(0,24,1)
ax.plot(timedata,bxdata, color='red', label='Bx',lw=1)
ax.plot (timedata, bydata, color='blue', label = 'By',lw=1)
ax.set_xlim(0,24)
ax.set_ylim(-250,250)
plt.ion()
plt.xlabel("Time (Hours)")
plt.ylabel("nT")
plt.grid(True, which='both')
plt.legend()
plt.show()
image = "test.png"
time.sleep(2)
plt.savefig(image)
plt.close('all')
这是我得到的图表。
【问题讨论】:
-
嗨马丁,欢迎来到 StackOverflow!请准备minimal, reproducible example。我们会更容易为您提供帮助。也看看this answer,因为它可能会解决你的问题
-
感谢您的回复。我已经查看了建议的修复程序。它没有做我需要它做的事情。图表需要预先格式化,X 轴和 Y 轴预先格式化超过 24 小时。这是我的简化代码,用作测试。实际上,我每 15 秒收集一次数据样本,但这显示了效果。
标签: python numpy matplotlib