有没有办法将颜色点链接到具有不同图例的字典?

Posted

技术标签:

【中文标题】有没有办法将颜色点链接到具有不同图例的字典?【英文标题】:is there a way to link color point to a dictionary with the different legend? 【发布时间】:2019-10-19 20:00:11 【问题描述】:

我想在做散点图和着色后将标签绑定到颜色, 有没有办法将颜色作为 arg,为每种颜色设置一个图例,如果颜色在图中,则将图例/标签添加到图中

我有一个大的 6D 点数据集 我以二维打印它们(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 列,每个点都有点和颜色(如果没有引用,则没有)

如果图例是图中所述颜色的点,我想在图中添加一个图例

【问题讨论】:

由于您似乎是 Stack Overflow 的新手,您应该阅读How to create a Minimal, Complete, and Verifiable example 如果可以的话,我只会提供一张图片并要求链接图例着色,我如何在代码中设置颜色取决于一些外部数据,这些数据提供起来会很复杂 谷歌搜索“matplotlib 传奇代理艺术家”。 【参考方案1】:
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.Patches 列表 来自https://matplotlib.org/users/legend_guide.html

【讨论】:

以上是关于有没有办法将颜色点链接到具有不同图例的字典?的主要内容,如果未能解决你的问题,请参考以下文章

具有分类数据的栅格地图的图例

ggplot2中散点图的图例(无颜色)

不同的颜色图表

如何在 HTML 的图例中指定不同的形状?

如何在ggplot中更改不同数据集的线条颜色并具有图例

Matlab:如何在每个数据点获得不同颜色的散点图中设置图例的颜色?