Python绘制图
我有一个由3列组成的文本文件Python绘制图,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有一个由3列组成的文本文件 列包含X坐标 列包含Y坐标 列包含0或1 到目前为止,我绘制了所有坐标: import matplotlib.pyplot as plt import numpy as np x, y = np.loadtxt("coordinates.txt",delimiter=' ',skiprows=1, usecols=(0,1),unpack=True) plt.plot(x,y) plt.show() 我只想画那些2rd列的值为1的坐标 请帮助我。希望这些帮助:
import matplotlib.pyplot as plt
import numpy as np
x, y = np.loadtxt("coordinates.txt",delimiter=' ',skiprows=1, usecols=(0,1),unpack=True)
plt.plot(x,y)
plt.show()
我只想画那些2rd列的值为1的坐标
请帮助我。希望这些帮助:
import matplotlib.pyplot as plt
import numpy as np
f = np.loadtxt('coordinates.txt',delimiter=' ',skiprows=1)
f = f[f[:,2] == 1]
x = f[:,0]
y = f[:,1]
plt.plot([x], [y], 'ro')
plt.show()
要做到这一点还有很长的路要走,就是使用一个循环,根据列表中的位置绘制(比如)点。但考虑到你的评论,这可能会对你有所帮助。 根据您的评论,您正在处理的数据被视为字符串。如果你打算处理编程,一定要检查数据类型 您还可以绘制每个点,并使它们不同,如下所示:
for i in range(len(z)):
if z[i] == str(1):
plt.plot(x[i],y[i], 'bo') #ones are blue dots
else:
plt.plot(x[i],y[i], 'ro') #zeros are red dots
我绝对建议您研究如何读取数据以及读取数据时如何处理数据(例如:将字符串转换为浮点数),因为这不是正确的方法,但可以做到这一点。您需要读取所有三列;并根据第三列过滤行;然后绘制结果。有很多方法可以做到这一点。请花时间阅读和它包含的链接。考虑解释为什么这个答案是有效的。提供见解对期货用户也有好处。试试这个,或者希望这个帮助很少是一个足够好的答案。@tiperos,有一个类型转换错误,字符串代替了float;尝试验证数据源。如何验证?:(谢谢,但我不知道。)(请你写信给我好吗?
for i in range(len(z)):
if z[i] == str(1):
plt.plot(x[i],y[i], 'bo') #ones are blue dots
else:
plt.plot(x[i],y[i], 'ro') #zeros are red dots