Python Scatterplot索引错误

时间:2017-09-22 03:30:44

标签: python

我无法确定为什么我的散点图会出现索引错误。

fig,ax=plt.subplots(figsize=(12,8))
colors=['b','r']  
for i in [2,4]:
    indices=np.where(benign_or_malignant==i)
    ax.scatter(clump_thickness[indices],single_ep_cell_size[indices], 
s=55,c=colors[i])   
  

IndexError Traceback(最近一次调用   最后)in()         [2,4]中的i为4:         5指数= np.where(benign_or_malignant == i)   ----> 6 ax.scatter(clump_thickness [indices],single_ep_cell_size [indices],   S = 55,C =颜色[I])

     

IndexError:列表索引超出范围

数据集的格式如下(ct = clump_thickness,secs = single_ep_cell_size,cl = clump benign(2)or malignant(4):

id     ct   secs    cl<br>
1000025 5   2   2<br>
1002945 5   7   2<br>
1015425 3   2   2<br>
1016277 6   3   2<br>
1017023 4   2   2<br>
1017122 8   7   4<br>
1018099 1   2   2<br>
1018561 2   2   2<br>
1033078 4   2   2<br>
1035283 1   1   2<br>
1036172 2   2   2<br>
1041801 5   2   4<br>

根据我的理解,它应该绘制丛集厚度与单个ep单元格大小的关系,并根据i = 2还是4对点进行不同的着色。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

列表索引错误是指colors列表。当colors[i]具有值i时,4未定义。

可能的解决办法:

colors = ['b','r']
b_or_m = [2, 4]  
for i in [0, 1]:
    indices=np.where(benign_or_malignant==b_or_m[i])
    ax.scatter(clump_thickness[indices], single_ep_cell_size[indices], s=55, c=colors[i]) 

答案 1 :(得分:1)

你可以试试这个

fig,ax=plt.subplots(figsize=(8,6))
for name, group in df.groupby('cl'):
    ax.plot(group['ct'], group['secs'], marker='o', linestyle='', label=name, ms = 10)
ax.set(xlabel='clump thickness', ylabel='single ep cell size')
ax.legend()

enter image description here