我想在完成散点图和着色后将标签绑定到颜色上, 有没有一种方法可以获取颜色为arg的颜色,为每种颜色设置图例,如果颜色在图中,则将图例/标签添加到图中
我有一个很大的6D点数据集 我将它们打印为2维(D1vsD2,D1vsD3 ....) 我根据具体数据给了他们颜色
我有一本字典,其中的标签与颜色含义相对应
matrix = [[1,1,1,1,1,2]
[2,2,2,2,2,3]
[3,3,3,3,3,4]]
legend = {0: "this is blue",1:"this is orange",2:"this is green" ...}
#obviously my dataset is bigger (matrix with 25 000 lines) so it is an example
data = np.asarray(matrix)
for x in range(6):
for y in range(6):
if x != y:
colors = []
for line in raw_data:
if x==1 and y==2:
colors.append('C0') #blue
elif x==0 and y==2:
colors.append('C1') #orange
elif x==1 and y==3:
colors.append('C2') #green
plt.figure()
plt.scatter(data.T[x],data.T[y], s=50, linewidth=0, c=colors, alpha=0.7)
结果是一个漂亮的图形,其中有2个轴,分别与第1列和第2列相对应,每个点都有点和颜色(如果未引用,则不显示)
如果它们是图形中所说颜色的点,我想在图形中添加图例
答案 0 :(得分:0)
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
red_patch = mpatches.Patch(color='red', label='The red data')
plt.legend(handles=[red_patch])
您可以创建更长的句柄,只要创建一个mpatches列表即可。 来自https://matplotlib.org/users/legend_guide.html