我正在尝试使用numpy和matplotlib分散或绘制2组数组。 代码一切正常,除非我在我的情节中尝试使用线条而不是点 我用的时候情节还可以:
from numpy import *
import matplotlib.pyplot as plt
positions=open('test.txt','r')
lines=positions.readlines()
for i in range(0,len(lines)):
line=lines[i]
values=line.split(" ")
x_val = [float(values[0])]
y_val = [float(values[1])]
# plt.scatter(x_val,y_val)
#Or
plt.plot(x_val,y_val,'ro')
plt.title(' Data')
plt.xlabel('x ')
plt.ylabel('y')
plt.show()
positions.close()
但是当我用plt.plot(x_val,y_val,'ro')
或plt.plot(x_val,y_val,'r')
取代plt.plot(x_val,y_val,'-')
时,我得到的只是一个空白页面!
我不知道问题是什么,因为我尝试了许多不同的选项,但唯一可行的选择是“o”。
答案 0 :(得分:2)
当您在没有设置标记的情况下请求绘图时,您看不到任何线条的原因是因为您正在单独绘制每个(x,y)点,这可能具有点位置,但会创建长度为零的线。
如果不是在读取时立即绘制每个点,而是将这些值放入数组中,并且只调用一次绘图函数,也可以显示一行:
x_vals = []
y_vals = []
for i in range(0,len(lines)):
line=lines[i]
values=line.split(" ")
x_vals.append(float(values[0]))
y_vals.append(float(values[1]))
plt.plot(x_vals, y_vals,'ro-')
如果需要,您仍然可以在散点图中使用数据。