Есть ли способ связать цветовой точки со словарем с другой легендой? - PullRequest
0 голосов
/ 04 июня 2019

Я хочу связать метку с цветом после выполнения точечной диаграммы и раскрашивания, есть ли способ получить цвета в виде аргумента, установить легенду для каждого цвета и, если цвет присутствует на графике, добавить легенду /подпись к графику

У меня большой набор данных точек в 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)

В результате получается красивый график с двумя осями, которые соответствуют столбцу 1 и столбцу 2 с точкой и цветом для каждой точки (или нет, если нетссылка)

Я хочу добавить легенду к графику, если это точка цвета, указанного на графике

1 Ответ

0 голосов
/ 04 июня 2019
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

...