【发布时间】:2020-04-12 04:20:39
【问题描述】:
为了使其尽可能简单,我尝试绘制 .DAT 文件中数据的速率与时间的关系。我在 24 小时内每 10 分钟绘制一次点。由于数据文件的格式和我的实现,时间数据是一个字符串列表。
我有一个单独的列表,它为每个速率实例提供了一个错误值。如果错误!= 0,我想从图中省略速率点,但保持 x 轴的时间相同。
到目前为止,我只能想到在 if 语句下面附加速率和时间值列表:
for line in file:
columns = line.split()
#throws out all instances of 0 in specified column
if(int(columns[5]) == 0:
hhmmss.append(str(columns[1]))
lv0rate.append(float(columns[3]))
error.append(int(columns[5]))
但是,这会导致我的 x 轴因错误点而被“挤压”,我希望 x 轴在 24 小时内保持一致。
我在一个 3x3 的子图网格上绘制它,所以我用于设置图形的控制函数如下所示:
# plot
fig, axs = plt.subplots(3, 3)
fig.subplots_adjust(left=0.2, wspace=0.6)
make_plot(axs)
# alignment of axes
fig.align_ylabels(axs[:, 1])
# set the x major locator
for axi in axs.flat:
axi.xaxis.set_major_locator(plt.MaxNLocator(30))
fig
for axs in fig.axes:
plt.sca(axs)
plt.xticks(rotation=70)
plt.rcParams['axes.grid'] = True
plt.show()
谢谢!
【问题讨论】:
标签: python python-3.x numpy matplotlib