2017-04-23 141 views
2

我试图创建一个非常类似于this的散点图。Matplotlib“ValueError:x和y必须是相同的大小”

我的代码如下。我正在比较两组学校,一个是系统,另一个是该系统的同学。 这是仿照发现here的指示。

plt.figure(figsize=(10,8)) 
plt.scatter(sys_peers_sat_earning['MD_EARN_WNE_P6'][sys_peers_sat_earning['SystemorPeer'] == 'USM'], 
      sys_peers_sat_earning['SAT_AVG'][sys_peers_sat_earning['SystemorPeer'] == 'USM'], 
      marker='x', 
      color='b', 
      alpha=0.7, 
      s = 124, 
      label='USM Schools') 
plt.scatter(sys_peers_sat_earning['MD_EARN_WNE_P6'][sys_peers_sat_earning['SystemorPeer'] == 'Peer'], 
      sys_peers_sat_earning['SAT_AVG'][sys_peers_sat_earning['SystemorPeer'] == 'Peer'], 
      marker='x', 
      color='b', 
      alpha=0.7, 
      d = 124, 
      label='USM Peers') 
plt.title('SATs and Earnings of Students Not Enrolled 6 Yrs. After Entry') 
plt.ylabel('Median earnings of students working and not enrolled 6 years after entry') 
plt.xlabel('Average SAT equivalent score of students admitted') 
X_train[:,0] 
plt.legend(loc='upper right') 

既没有的X_train[:,0]行提到here错误传来如下:ValueError: x and y must be the same size

有人能和我聊好象有两个关于如何修改这个步骤是什么?

+0

提供[mcve]问题时,获得帮助的机会会更高。 – ImportanceOfBeingErnest

回答

1

的错误指示

sys_peers_sat_earning['MD_EARN_WNE_P6'][sys_peers_sat_earning['SystemorPeer'] == 'USM'] 

(你的X值)

通过重命名它们具有不同的尺寸比

sys_peers_sat_earning['SAT_AVG'][sys_peers_sat_earning['SystemorPeer'] == 'USM'] 

(你的Y值)

确认分别放入x和y并检查它们的长度:

len(x) == len(y) 

这会告诉你,如果x和y确实是相同的大小。

+0

谢谢你的回应!我确实运行这个,它表明它是真的 'len(sys_peers_sat_earning ['MD_EARN_WNE_P6'])== len(sys_peers_sat_earning ['SAT_AVG'])' – Walker

+0

我试图甚至做出一个非常简单的散点图,并得到相同的错误'plt.scatter(sys_peers_sat_earning.MD_EARN_WNE_P6,sys_peers_sat_earning.SAT_AVG)' – Walker

+0

我运行测试概述[这里](http://stackoverflow.com/questions/37784165/matplotlib-scatter-array-lengths-are-not-same )这'打印(sys_peers_sat_earning [ 'MD_EARN_WNE_P6']。形状) 打印(sys_peers_sat_earning [ 'SAT_AVG']。形状)' 和得到这个'(143) (143 2)' 这是任对你有帮助吗? (143,2) – Walker

相关问题