Цвета легенды не соответствуют цветам сюжета - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь установить легенды каждой точки на графике рассеяния. Моя главная проблема заключается в том, что цвета каждой точки не соответствуют цвету того, что есть в легенде. Что я делаю не так и как мне это исправить?

def scatter(self, indep, dep, labl):
   x = self.df_input[indep]
   y = self.df_input[dep]
   random = np.random.RandomState(0)
   colors = random.rand(len(labl)+1)

   fig = plt.figure()
   ax = fig.add_subplot(111)

   for leg in labl:
      ax.scatter(x, y, c=colors, cmap='gist_ncar', label=leg)

   ax.legend()
   ax.set_xlabel(indep)
   ax.set_ylabel(dep)
   ax.axis('tight')
   plt.show()

1 Ответ

0 голосов
/ 10 апреля 2019

Похоже, вы пытаетесь построить группы в кадре данных.Так что-то вроде этого может работать:

import matplotlib.pyplot as plt
import pandas as pd

data = [['a', 1, 3],
        ['a', 2, 2],
        ['b', 2, 4],
        ['b', 1, 5],
        ['b', 3, 5],
       ]

df = pd.DataFrame(data, columns=['cat', 'x', 'y'])

for name, group in df.groupby('cat'):
    plt.scatter(group.x, group.y, label=name)
plt.legend()

Это производит:

Sample plot

...