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

Plotting data from CSV files using 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()

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

我要的是这张图。
(来源: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 标准语法。