繁体   English   中英

绘图点 - Python matplotlib

[英]Plotting points - Python matplotlib

我在绘制点时遇到问题。 我对python知之甚少,我仍在学习中。

这是我的代码:

def graph(features, labels,classes):
  plt.plot(features[labels[:]==1,0], features[labels[:]==1,1],'g^',
       features[labels[:]==0,0],features[labels[:]==0,1],'rs')
  plt.axis([-4, 4,-4, 4])
  plt.xlabel('x: feature 1')
  plt.ylabel('y: feature 2')
  plt.legend(['Class'+str(classes[1]), 'Class'+str(classes[0])])
  plt.show()


features=np.array([[1,1], [1,0], [0,1], [-1,-1], [0.5,3], [0.7,2], [-1,0], [-1,1], [2,0], [-2,-1]])
labels=np.array([1,1,-1,-1,1,1,-1,-1,1,-1])
classes=[0,1]

当我运行代码时,这是输出:绘图点

您的features数组中没有0 ,因此当您执行labels[:]==0它会给您一个 false 数组,这不是很有用。

我认为您想在第 3 行执行此操作:

features[labels[:]==-1,0],features[labels[:]==-1,1]

这是我这样做的结果:

输出

尝试这个:

def graph(features, labels,classes):
    plt.plot(features[:,0][labels==1], features[:,1][labels==1],'g^')
    plt.plot(features[:,0][labels==-1],features[:,1][labels==-1],'rs')

    plt.axis([-4, 4,-4, 4])
    plt.xlabel('x: feature 1')
    plt.ylabel('y: feature 2')
    plt.legend(['Class'+str(classes[1]), 'Class'+str(classes[0])])
    plt.show()


features=np.array([[1,1], [1,0], [0,1], [-1,-1], [0.5,3], [0.7,2], [-1,0], [-1,1], [2,0], [-2,-1]])
labels=np.array([1,1,-1,-1,1,1,-1,-1,1,-1])
classes=[0,1]

graph(features,labels,classes)

这使:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM