Поведение pandas 'DataFrame.plot()
может быть сложным и не всегда интуитивно понятным. Теоретически, вы можете передать массив цветов в plot()
, который будет передан в основную функцию построения графика.
Фактически, поскольку вы строите 3 вспомогательных графика, вы должны передать список из 3 вспомогательных графиков. списки, каждый из которых содержит цвета каждого из ваших столбцов.
df.plot(kind='barh', subplots=True,grid=True,figsize=(10,7), color=[['C0','C1']]*3, legend=False)
Однако при этом метки на оси y исчезают. По какой-то причине вам нужно указать имена столбцов, которые вы хотите использовать при вызове plot()
, чтобы снова появиться.
df.plot(kind='barh',x='group', y=['clicks_per_visit','bookings_per_visit','rev_per_visit'], subplots=True,grid=True,figsize=(10,7), color=[['C0','C1']]*3, legend=False)
![enter image description here](https://i.stack.imgur.com/QVX71.png)
Поскольку вы запрашиваете другие варианты визуализации, я могу показать вам, что вы можете получить примерно такой же вывод с более простым синтаксисом, используя seaborn. Единственный «улов» в том, что вы должны «сложить» свой фрейм данных, чтобы он был длинным, а не широким
df2 = df.melt(id_vars=['group'],value_vars=['clicks_per_visit', 'bookings_per_visit', 'rev_per_visit'])
plt.figure(figsize=(8,4))
sns.barplot(y='variable',x='value',hue='group', data=df2, orient='h')
plt.tight_layout()
![enter image description here](https://i.stack.imgur.com/VGOds.png)