gpt4 book ai didi

python - Matplotlib 直方图或 Seaborn distplot 的 bin 没有轮廓

转载 作者:IT老高 更新时间:2023-10-28 22:14:38 24 4
gpt4 key购买 nike

在使用 seaborn 和 Jupyter 笔记本做一些练习题时,我意识到 distplot() 图在各个 bin 上没有文档中所有示例图所具有的较暗轮廓。我尝试使用 Pycharm 创建图表并注意到同样的事情。认为这是一个海洋问题,我尝试了一些使用 matplotlib 的 hist() 图表,但得到了相同的结果。

import matplotlib.pyplot as plt
import seaborn as sns
titanic = sns.load_dataset('titanic')
plt.hist(titanic['fare'], bins=30)

生成了以下图表:

enter image description here

最后我偶然发现了 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。

最佳答案

作为 matplotlib 2.0 更新的一部分,条形图上的边为 turned off by default .但是,您可以使用 rcParam

plt.rcParams["patch.force_edgecolor"] = True

全局开启边缘。

可能最简单的选择是在创建 seaborn 绘图时专门设置边缘颜色,使用 hist_kws 参数,

ax = sns.distplot(x, hist_kws=dict(edgecolor="k", linewidth=2))

对于 matplotlib 绘图,可以直接使用 edgecolorec 参数。

plt.bar(x,y, edgecolor="k")
plt.hist(x, edgecolor="k")

同样,对于 Pandas 地 block ,

df.plot(kind='hist',edgecolor="k")

一个完整的 seaborn 示例:

import  numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

x = np.random.randn(100)
ax = sns.distplot(x, hist_kws=dict(edgecolor="k", linewidth=2))
plt.show()

enter image description here

关于python - Matplotlib 直方图或 Seaborn distplot 的 bin 没有轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43080259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com