python - 使用 matplotlib 从 CSV 文件中绘制数据

标签 python matplotlib

我的 csv 文件看起来

0.0 1
0.1 2
0.2 3
0.3 4
0.5 7
1.0 9


0.0 6
0.1 10
0.2 11
0.3 12
0.5 13
1.0 14

...

我想在 x 轴上绘制第一列,在 y 轴上绘制第二列。 所以我的代码是

import matplotlib.pyplot as plt
from numpy import genfromtxt
data=genfromtxt("test",names=['x','y'])
ax=plt.subplot(111)
ax.plot(data['x'],data['y'])
plt.show()

但是这个连接图形的终点,显示直线, graph
(来源:tistory.com)

我想要的是这张图。 graph
(来源:tistory.com)

那么如何读取数据文件或者matplotlib中有没有断开线路的选项?

最佳答案

正如其他人在评论中提到的那样,每次调用 plot 都会绘制它获得的所有点对,因此您应该为每一列分割数据。如果所有的线都是 6 磅,你可以这样做:

import matplotlib.pyplot as plt
from numpy import genfromtxt
data=genfromtxt("test",names=['x','y'])
x=data['x']
y=data['y']
columnsize = int(len(x)/6)
ax=plt.subplot(111)
for i in range(columnsize):
    ax.plot(x[i*6:(i+1)*6],y[i*6:(i+1)*6])
plt.show()

xy 的类型为 numpy.ndarray 时,此代码有效。 numpy 数组支持 indexing and slicing作为 python 标准语法。

关于python - 使用 matplotlib 从 CSV 文件中绘制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30091169/

相关文章:

python - 如何获得 groupby 大小的百分比

python - python 中类似 linq 的求和函数

python - matplotlib 用非 ascii 和 LaTeX 字符将标题拆分为两行

python - Windows - Cygwin - Vim - Python - 导入错误

python - matplotlib 在 .eps 文件中的 AxesSubplot 之外绘制等高线标签

python - Matplotlib - 如何使用文档来查找特定需求?

python - Valign 不在 kivy 工作?

python - PyQt5 中带有框架的自定义标题栏

python - 我在使用 Python 2.7 字典时遇到错误

python - 如何设置 Matplotlib 轴图例的字体大小?