我正在根据它们在文件中的位置绘制一组数字。
例如,文件的前几行如下所示:
93
90
77
79
83
96
111
115
115
118
129
138
153
147
151
164
166
162
161
157
165
148
161
161
143
现在,我想针对文件中的行号绘制每个数字。
X axis - line number in the file
Y axis - the value of the number at that specific line
我编写了以下代码,用于绘制文件中前5000个数字的图形:
import matplotlib.pyplot as plt
import sys
X, Y = [], []
counter = 1
for line in open(sys.argv[1], 'r'):
X.append(float(counter))
Y.append(float(line))
counter = counter + 1
if counter > 5000:
break
plt.plot(X, Y)
plt.show()
图形如下所示:
但是,我希望X轴显示更详细的时间间隔,并且该图应如下图所示:
答案 0 :(得分:1)
说明
您几乎完全正确,只需更改要使用的图形的类型即可。
代码
<ul class="jSC57">
<div class="PZuss">
<li>
<div>
<p>test1</p>
</div>
<div>
<button class="_0mzm- sqdOP L3NKy _8A5w5" type="button">Demandé</button>
</div>
</li>
<li>
<div>
<p>test2</p>
</div>
<div>
<button class="_0mzm- sqdOP L3NKy _8A5w5" type="button">Demandé</button>
</div>
</li>
<li>
<div>
<p>test3</p>
</div>
<div>
</div>
</li>
<li>
<div>
<p>test4</p>
</div>
<div>
<button class="_0mzm- sqdOP L3NKy _8A5w5" type="button">Demandé</button>
</div>
</li>
</div>
</ul>
根据所需条的厚度更改宽度。
资源
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.bar.html http://www.scipy-lectures.org/intro/matplotlib/matplotlib.html
答案 1 :(得分:0)
您的问题是您正在使用plot
(将数组绘制为连续线),而matplotlib具有其他功能,例如matplotlib.pyplot.vlines
,可以生成您所请求的图像。
如果文件中没有空行,则此功能使您不必在示例中添加 X 列表(这可以加快程序速度)。
否则,如果该行为空,则可以在 Y 列表中添加零, 这是vlines docs
我认为无需重写程序,因为它现在很简单。