当我使用seaborn和一个xmlyter notebook做一些练习题的时候,我意识到distplot()图的各个bin上的轮廓并不像文档中的所有示例图那样更暗。我尝试使用Pycharm创建这些图,也注意到了同样的事情。我认为这是一个seaborn问题,于是我使用matplotlib尝试了一些hist()图表,但得到的结果都是一样的。
import matplotlib.pyplot as plt
import seaborn as sns
titanic = sns.load_dataset('titanic')
plt.hist(titanic['fare'], bins=30)
得出了以下图表:
最后,我偶然发现了plt.hist()函数中的'edgecolor'参数,并将其设置为黑色。不幸的是,我还没有找到一个类似的参数用于seaborn distplot()函数,所以我仍然无法得到一个看起来应该的图表。
我曾尝试在matplotlib中修改rcParams,但我没有这方面的经验,我运行的以下脚本似乎什么也没做:
import matplotlib as mpl
mpl.rcParams['lines.linewidth'] = 1
mpl.rcParams['lines.color'] = 'black'
mpl.rcParams['patch.linewidth'] = 1
mpl.rcParams['patch.edgecolor'] = 'black'
mpl.rcParams['axes.linewidth'] = 1
mpl.rcParams['axes.edgecolor'] = 'black'
我只是猜测我应该改变的值,但是再次运行我的图表显示没有变化。
然后,我尝试使用mpl.rcdefaults()返回到默认设置,但再次没有更改。
我使用conda重新安装了matplotlib,但图表看起来还是一样。我已经不知道如何更改这些图表的默认边缘颜色了。我正在使用Conda构建运行最新版本的Python,matplotlib和seaborn。
2条答案
按热度按时间vecaoik11#
rcParams
全局更改。plt.rcParams["patch.force_edgecolor"] = True
edgecolor
/ec
参数,并可能增加linewidth
/lw
参数。*在
python 3.11.4
、pandas 2.0.3
、matplotlib 3.7.1
、seaborn 0.12.2
中测试导入和样本数据
Pandas
matplotlib
.hist
.bar
海运
ec='k'
是默认设置。但是,ec
可以用于设置不同的颜色或None
。.histplot
.displot
.distplot
histplot
和displot
取代。distplot
时使用hist_kws
参数设置边缘颜色。示例图
pu82cl6c2#
截至2021年3月:
工作。使用
hist_kws=dict(edgecolor="k", linewidth=2)
给出了一个错误:AttributeError: 'PolyCollection' object has no property 'hist_kws'