Как получить цвет гистограммы seaborn/matplotlib

Я строю морскую графику с этим кодом:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
%matplotlib inline
df=pd.DataFrame(data=['a','b','c','d','a','a','b','c','a','a'],columns['datos'])
tabla=df['datos'].value_counts().reset_index()
fig, ax1 = plt.subplots(figsize=(6,4))
sns.set()
sns.barplot(x='index', y='datos', data=tabla, ax=ax1)

Он работает должным образом.... но как я могу получить код цветов, используемых для каждого бара? Я пытался с:

f.get_color()
ax.get_color()

но безуспешно...

заранее спасибо Waly

1 ответ

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

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
import pandas as pd
import seaborn as sns
%matplotlib inline
sns.set()

df=pd.DataFrame(data=['a','b','c','d','a','a','b','c','a','a'],columns=['datos'])
tabla=df['datos'].value_counts().reset_index()
fig, ax1 = plt.subplots(figsize=(6,4))
sns.barplot(x='index', y='datos', data=tabla, ax=ax1)

bars = [r for r in ax1.get_children() if type(r)==Rectangle]
colors = [c.get_facecolor() for c in bars[:-1]] # I think the last Rectangle is the background.
Другие вопросы по тегам