我通过以下方式绘制了散点图:
f, ax1 = plt.subplots(3,2)
cmap = matplotlib.cm.get_cmap('coolwarm')
ax1[0,1].scatter(data[:,0], data[:,1], c=y, s=20, marker='o', alpha=.5, cmap=cmap)
data
保存数据并y
保存标签(1,2,3)。现在,我想添加一个图例。
ax1[0,1].legend(('label1', 'label2', 'label3'),
scatterpoints=1,
loc='lower left',
fontsize=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()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句