用两列绘制一组数据?

时间:2017-01-19 02:18:43

标签: python numpy plot

我有一个包含两列数字的.dat文件。 x值在第一列中,y值在第二列中。我只有在第一列中读取python然后只读取第二列时遇到困难。在我的老师在课堂上做的演示中,他使用了最后一行代码:

from scipy import *
import numpy as np  
import matplotlib.pyplot as plt

data = np.loadtxt('repeatdata.dat')

# This is the line that I am referring to
plt.plot(data[:,0], data[:,1], 'ro') 

我不知道这条线是做什么的,但看起来它可能正在做我想做的事情。

2 个答案:

答案 0 :(得分:0)

您的代码看起来不错。

您需要额外拨打plt.show()来实际显示情节。

您还需要确保.dat文件中的值与空格分开。

另外,您确定要阅读正确的文件吗? np.loadtxt('repeatdata.txt')加载txt文件。

<强> somedata.dat

2 4
3 9
4 16
5 25
6 16

<强> main.py

from scipy import *
import numpy as np  
import matplotlib.pyplot as plt

data = np.loadtxt('somedata.dat')

plt.plot(data[:,0], data[:,1], 'ro') 
plt.show()

答案 1 :(得分:0)

有些人可能还发现在绘制numpy数组的列时使用星号来缩短表示法很有用:

import numpy as np
import matplotlib.pyplot as plt

data = np.array([[1,4],
                 [2,5],
                 [3,6]])

plt.plot(*data.T, 'ro')
plt.show()

同样在绘制行时:

data = np.array([[1,2,3],
                 [4,5,6]])

plt.plot(*data, 'ro')
plt.show()