Как добавить пользовательские строки в легенды графиков count_value в пандах? - PullRequest
0 голосов
/ 30 августа 2018

У меня есть столбец данных, к которому я применил value_counts, чтобы найти число вхождений каждого объекта.

Я пытаюсь представить это как гистограмму. Он наносит на карту с каждой сущностью на оси X и их счет на оси Y. Как добавить легенду, чтобы каждая сущность на оси x была отображена в строку.

Результат value_counts выглядит следующим образом:

df.Column.value_counts()

10.0      1094
2154.0     697
23.0       202

Мне нужна легенда, которая заменит мои сущности на строки.

  • 10 - Альфа
  • 2154 - бета
  • 23 - Гамма

Количество объектов может отличаться. У меня есть список строк для каждой сущности. Поэтому я ищу заменить мои сущности на строки из списка. Я хочу заменить его только на легенду.

На графике должны быть объекты на оси x, а в легенде должны быть эквивалентные строки из списка.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018
equiv = {10:"Alpha", 2154:"Beta", 23:"Gamma"}
df = df.map(equiv)

или, возможно, придется использовать .withColumn и что-то вроде этого Как добавить столбец карты в искре на основе другого столбца?

0 голосов
/ 30 августа 2018

Не так просто, потому что по умолчанию нет легенды:

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt

s = df.Column.value_counts()
#sample data
#s = pd.Series([1094,697,202], index=[10.0,2154.0,23.0])

s.plot.bar()
a = mpatches.Patch(color='blue', label='Alpha')
b = mpatches.Patch(color='orange', label='Beta')
c = mpatches.Patch(color='green', label='Gamma')

plt.legend(handles=[a,b,c], loc='best')

plt.show()

Если wnt также изменить значения axis x, добавьте rename:

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt

s = df.Column.value_counts()
d = {10:'Alpha', 2154: 'Beta', 23: 'Gamma'}
#sample data 
#s = pd.Series([1094,697,202], index=[10.0,2154.0,23.0])

s.rename(d).plot.bar()

a = mpatches.Patch(color='blue', label='Alpha')
b = mpatches.Patch(color='orange', label='Beta')
c = mpatches.Patch(color='green', label='Gamma')

plt.legend(handles=[a,b,c], loc='best')

plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...