在Python中向散点图添加图例

在Python中向散点图添加图例,python,matplotlib,legend,Python,Matplotlib,Legend,我用以下方法绘制了散点图: f,ax1=plt.子批次(3,2) cmap=matplotlib.cm.get\u cmap('coolwarm') ax1[0,1]。散布(数据[:,0],数据[:,1],c=y,s=20,标记=o',α=0.5,cmap=cmap) data保存数据,y保存标签(1,2,3)。现在我想添加一个传奇 ax1[0,1]。图例('label1','label2','label3'), 散射点=1, loc='左下', 字体大小=10) 这不起作用,它只打印lab

我用以下方法绘制了散点图:

f,ax1=plt.子批次(3,2)
cmap=matplotlib.cm.get\u cmap('coolwarm')
ax1[0,1]。散布(数据[:,0],数据[:,1],c=y,s=20,标记=o',α=0.5,cmap=cmap)
data
保存数据,
y
保存标签(1,2,3)。现在我想添加一个传奇

ax1[0,1]。图例('label1','label2','label3'),
散射点=1,
loc='左下',
字体大小=10)

这不起作用,它只打印label1。否则怎么能做到这一点呢?

我们的想法是将数据集划分为不同的数据集,这些数据集由相同的颜色表示。之后,图例正确显示

import matplotlib.pyplot as plt
import matplotlib
import numpy as np

data = np.zeros(shape=(10,2))
data[:,0] = np.linspace(0,1,10)
data[:,1] = np.linspace(0,1,10)

y = ['red', 'green', 'blue']
f, ax1 = plt.subplots(3,2)
cmap = matplotlib.cm.get_cmap('coolwarm')
ny = len(y)
for i, itm in enumerate(y):
    datac = data[i::ny,:]
    ax1[0,1].scatter(datac[:,0], datac[:,1], c=itm, 
                     s=20, marker='o', alpha=.5, cmap=cmap)

ax1[0,1].legend(['label1', 'label2', 'label3'],
           scatterpoints=1,
           loc='lower left',
           fontsize=10)
plt.show()