首页 > 解决方案 > 根据文件中的位置绘制文件中的数字

问题描述

我正在根据它们在文件中的位置绘制一组数字。

例如,文件的前几行如下所示:

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 轴显示更详细的间隔,图表应如下所示:

在此处输入图像描述

标签: pythonmatplotlib

解决方案


解释

您已经得到了几乎正确的结果,您需要做的就是更改要使用的图形类型。

代码

plt.bar(X, Y, align='center', width=0.2)
plt.show()

根据您需要的钢筋厚度更改宽度。

资源

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.bar.html http://www.scipy-lectures.org/intro/matplotlib/matplotlib.html


推荐阅读