我正在为我的公司编写一个自定义的matplotlib样式表。其中,我尝试更改箱线图的颜色。下面的示例使用字典更改了rcParams
。使用matplotlib构建的标准图具有正确的颜色,而在seborn图中似乎只有一些参数被更改。如何强制seborn使用我的样式表?
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df_penguins = pd.read_csv(
"https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv"
)
ex = {
'boxplot.boxprops.color': 'hotpink',
'boxplot.notch': True,
'boxplot.patchartist': False,
'boxplot.showbox': True,
'boxplot.showcaps': True,
'boxplot.showfliers': True,
'boxplot.showmeans': False,
'boxplot.vertical': True,
'boxplot.whiskerprops.color': 'hotpink',
'boxplot.whiskerprops.linestyle': '--',
'boxplot.whiskerprops.linewidth': 1.0,
'boxplot.whiskers': 1.5,
}
plt.rcParams.update(**ex)
fig, (ax1, ax2) = plt.subplots(
ncols=2,
sharey=True,
figsize=plt.figaspect(0.5)
)
sns.boxplot(data=df_penguins, y="body_mass_g", ax=ax1)
ax2.boxplot(df_penguins.body_mass_g.dropna())
plt.show()
1条答案
按热度按时间wh6knrhe1#
不同于@mwaskom的评论 * Seborn * 确实在引擎盖下使用了
matplotlib
的rcParams
。默认情况下,您通过
sns.set_theme()
激活海运默认值,sns.set_theme()
直接影响rcParams
。您可以使用该函数中的rc
参数覆盖默认值。旁注:可以但不建议混合使用
matplotlib
和seaborn
导入。简而言之:导入seaborn
时不导入matplotlib
。我更新了你的代码。
请注意,并非所有
ex
中的设置在这里都有效。例如,hotpink
。但我确信这不是我的解决方案的问题。例如,boxplot.notch
确实有效。所以我很抱歉,这只回答了如何修改
rcParams
通过Seborn,但没有如何修改您的主题的具体方面。