我使用以下代码生成seaborn散点图:
import pandas as pd
from matplotlib import pyplot
import seaborn as sns
%matplotlib inline
df = pd.DataFrame({
'Year': [2010, 2011, 2010, 2011, 2012],
'Event': ['A', 'A', 'B', 'B', 'B']
})
fig, ax = pyplot.subplots()
sns.stripplot(x="Year", y="Event", ax=ax, data=df,
palette=sns.color_palette("deep", 50));
生成的图像是:
然而,当可能的标签的数量增加时(例如:'事件'= ['A','B',......'Z'],难以读取对应于每个圆的y标签。
如何在调色板中编写涂有相应颜色的每个y标签(例如:Event)?
通常,在此示例中,我希望A y标签以蓝色书写,B以绿色书写
dict_colors = {"A":"blue", "B":"green"}
对于记录,这里是新代码感谢[label.set_color( dict_colors[label.get_text()] ) for label in ax.get_yticklabels()]
的答案
jrjc
新生成的图像是:
import pandas
from matplotlib import pyplot
import seaborn as sns
%matplotlib inline
df = pandas.DataFrame({
'Year': [2010, 2011, 2010, 2011, 2012],
'Event': ['A', 'A', 'B', 'B', 'B']
})
fig, ax = pyplot.subplots()
pal = sns.color_palette("deep", 50)
sns.stripplot(x="Year", y="Event", ax=ax, data=df, palette=pal);
[label.set_color(pal[i]) for i, label in enumerate(ax.get_yticklabels())]