Раскраска различных участков графика на основе многоиндексного уровня - PullRequest
1 голос
/ 03 мая 2019

Мне нужно создать график, используя pyplot, где я могу раскрасить маркеры на основе первого уровня индекса в DataFrame (df). Пример: все значения: A - красный, B - зеленый, C - синий Я строю графики a1, a2, a3, a4, a5 против значений cat2. Каждое значение должно быть на одном участке.

Я могу сделать это, используя подзаговоры, используя сечение:

f, a = plt.subplots(3,1)
df.xs('A').plot(ax=a[0])
df.xs('B').plot(ax=a[1])
df.xs('C').plot(ax=a[2])

Сюжет позволяет мне раскрасить разные xs, но мне нужен способ сделать это на одном графике. Ссылка - изображение моего фрейма данных в формате csv

1 Ответ

0 голосов
/ 04 мая 2019

Полагаю, что-то подобное будет работать.

f, a = plt.subplots(1, 1)
# Only create one subplot as all the data is meant to go on one plot only
df.xs('A').plot(ax=a, marker='D', markersize=6, markerfacecolor='red',
                markeredgecolor='red')
df.xs('B').plot(ax=a, marker='D', markersize=6, markerfacecolor='green',
                markeredgecolor='green')
df.xs('C').plot(ax=a, marker='D', markersize=6, markerfacecolor='blue',
                markeredgecolor='blue')
...