Python绘制图

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的坐标 请帮助我。希望这些帮助:

我有一个由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
    
       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