标签: displot

如何使用seaborn distplot / histplot / displot绘制百分比

有没有办法在 distplot 上绘制百分比而不是计数?

ax = sns.FacetGrid(telcom, hue='Churn', palette=["teal", "crimson"], size=5, aspect=1)
ax = ax.map(sns.distplot, "tenure",  hist=True, kde=False)
ax.fig.suptitle('Tenure distribution in customer churn', y=1, fontsize=16, fontweight='bold');
plt.legend();
Run Code Online (Sandbox Code Playgroud)

代码生成的图像

python pandas seaborn displot histplot

7
推荐指数
2
解决办法
2万
查看次数

如何修改 sns.histplot 中的核密度估计线

我正在创建一个直方图(频率与计数),并且我想添加不同颜色的核密度估计线。我怎样才能做到这一点?例如我想改变颜色

sns.histplot(data=penguins, x="flipper_length_mm", kde=True)

在此输入图像描述

示例取自https://seaborn.pydata.org/ generated/seaborn.histplot.html

python seaborn displot kdeplot histplot

6
推荐指数
1
解决办法
8547
查看次数

如何更改绘图颜色饱和度

我已经安装了最新版本的seaborn(0.11.1)。当我使用自定义颜色绘制历史记录时,它显示的颜色与我预期的不同(请参阅 sns.palplot 的颜色)。对于某些 api,它有一个饱和参数,但对于 displot 则没有。

dat_plots_mod = dat_plots.copy(deep=True)
dat_plots_mod.loc[dat_plots_mod.LDS == "FC", "LDS"] = "F"
palette = ["#9b59b6", "#ff0000", "#00f0f0", "#00ff00", "#000000", "#320ff0"]
sns.set_theme(style="ticks", font_scale=1.3)
g = sns.displot(
    x="AgeRS", 
    hue="LDS", 
    data=dat_plots_mod, 
    palette=palette, 
    aspect=1.5,
)
g.set(ylabel="Number of samples", ylim=(0, 30))
Run Code Online (Sandbox Code Playgroud)

脚本和剧情结果截图

python colors seaborn displot

5
推荐指数
1
解决办法
7123
查看次数

如何在seaborn displot上绘制正态曲线

distplot 已被弃用,取而代之的是 displot。

之前的函数可以选择绘制正态曲线。

import seaborn as sns
import matplotlib.pyplot as plt
from scipy import stats

ax = sns.distplot(df.extracted, bins=40, kde=False, fit=stats.norm)
Run Code Online (Sandbox Code Playgroud)

不再fit=stats.norm适用于 displot。在这个问题的答案中,我看到了稍后绘制法线的方法,但是它是在一些平均约为 0 的随机数据上完成的。

python distribution histogram seaborn displot

5
推荐指数
1
解决办法
5124
查看次数

如何在 kdeplot / displot 中为每个色调组设置不同的线条样式

  • 如何才能给每个hue组的 aseaborn.kdeplotseaborn.displotwithkind='kde'赋予不同的值linestyle
    • 轴级别和图形级别选项都接受strfor linestyle/ls,它适用于所有hue组。
import seaborn as sns
import matplotlib.pyplot as plt

# load sample data
iris = sns.load_dataset("iris")

# convert data to long form
im = iris.melt(id_vars='species')

# axes-level plot works with 1 linestyle
fig = plt.figure(figsize=(6, 5))
p1 = sns.kdeplot(data=im, x='value', hue='variable', fill=True, ls='-.')

# figure-level plot works with 1 linestyle
p2 = sns.displot(kind='kde', data=im, x='value', hue='variable', fill=True, ls='-.')
Run Code Online (Sandbox Code Playgroud)
  • kdeplot

在此输入图像描述

  • displot

在此输入图像描述

已审阅的问题

python matplotlib seaborn displot kdeplot

4
推荐指数
1
解决办法
3215
查看次数

如何在seaborn displot中使用hist_kws

我想在同一图中用不同的颜色绘制直方图和 kde 线。我想为直方图设置绿色,为 kde 线设置蓝色。我设法弄清楚使用 line_kws 来更改 kde 线条颜色,但 hist_kws 不适用于显示。我尝试过使用 histplot 但我无法为 hist 和线条设置不同的颜色。

python seaborn displot

3
推荐指数
1
解决办法
5694
查看次数

绘制多个seaborn displot

我正在尝试创建按列分组的数据框的 distplot

data_plot = creditcard_df.copy()
amount = data_plot['Amount']
data_plot.drop(labels=['Amount'], axis=1, inplace = True)
data_plot.insert(0, 'Amount', amount)

# Plot the distributions of the features
columns = data_plot.iloc[:,0:30].columns
plt.figure(figsize=(12,30*4))
grids = gridspec.GridSpec(30, 1)
for grid, index in enumerate(data_plot[columns]):
    ax = plt.subplot(grids[grid])
    sns.distplot(data_plot[index][data_plot.Class == 1], hist=False, kde_kws={"shade": True}, bins=20)
    sns.distplot(data_plot[index][data_plot.Class == 0], hist=False, kde_kws={"shade": True}, bins=20)
    ax.set_xlabel("")
    ax.set_title("Distribution of Column: "  + str(index))
    plt.show()
Run Code Online (Sandbox Code Playgroud)

阴谋 我尝试对 y 轴使用对数刻度,更改 gridspec 和 Figsize;但所有这些只会让发行版变得一团糟。有没有办法让图统一?

python matplotlib pandas seaborn displot

3
推荐指数
1
解决办法
9524
查看次数

Seaborn 绘图显示色调和双 y 尺度 (twinx)

我正在尝试绘制 ML 模型预测的输出,目标有 1,0 类,以及分数。由于数据集不平衡,所以 1 很少。

当我用色调参数中的目标绘制一个简单的图表时,该图对于描述 1 是没有用的

sns.set_theme()
sns.set_palette(sns.color_palette('rocket', 3))
sns.displot(df, x='Score', hue='Target', bins=30, linewidth=0, height=5, kde=True, aspect=1.6)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想更改同一图中 1 的比例,并在右侧使用 twinx 更改第二个 y 比例。

我尝试过以下代码,可以解决 2 个图的问题,但我只需要一个图。我无法使用 twinx。

g = sns.displot(df, x='Score', col='Target', bins=30, linewidth=0, height=5, kde=True, aspect=1.6, facet_kws={'sharey': False, 'sharex': False})
g.axes[0,1].set_ylim(0,400)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

g = sns.FacetGrid(df, hue='Target')
g = g.map(sns.displot, 'Score', bins=30, linewidth=0, height=3, kde=True, aspect=1.6)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

一个可重现的例子可以是泰坦尼克号数据集:

df_ = sns.load_dataset('titanic')
sns.displot(df_, x='fare', hue='survived', bins=30, linewidth=0, height=5, kde=True, aspect=1.6)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

g = sns.displot(df_, x='fare', …
Run Code Online (Sandbox Code Playgroud)

python distribution histogram seaborn displot

3
推荐指数
1
解决办法
3213
查看次数

Seaborn - 显示两个不同样本批次的标准化 KDE

我想知道是否有一种快速方法可以对两个显示的样本批次的 KDE 曲线进行归一化(使得每条曲线的积分等于 1)(见下图)。

到目前为止我使用:

sb.displot(data=proc, x="TPSA", hue="Data", kind="kde", legend=False)
Run Code Online (Sandbox Code Playgroud)

给我以下情节:

非标准化 KDE 图

先谢谢您的帮助。

python seaborn displot

3
推荐指数
1
解决办法
1830
查看次数

如何更改 displot 中的直方图条形宽度

我正在使用seaborn 的displot 来获取堆积条形图。这是我的代码:

g = sns.displot(data=df, x='collection_year', hue='WB_Income group', multiple='stack',col="ena_species",col_wrap=6,facet_kws={'sharey': False, 'sharex': False})
Run Code Online (Sandbox Code Playgroud)

这是输出 在此输入图像描述

如何增加条形的宽度?

python histogram seaborn displot

3
推荐指数
1
解决办法
3481
查看次数

使用 Seaborn displot 覆盖 kde 图

我正在尝试重新创建一个用 seaborn 制作的图,distplot但使用displot, 因为distplot正在折旧。
如何使displot两列重叠?
这是使用以下命令创建的原始代码distplot

import pandas as pd
import numpy as np
import seaborn as sns
df1 = pd.DataFrame({'num1':np.random.normal(loc=0.0, scale=1.0, size=100),'num2':np.random.normal(loc=0.0, scale=1.0, size=100)})
sns.distplot(df1['num1'],hist=False,color='orange',)
sns.distplot(df1['num2'],hist=False,color='blue')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这是使用绘图的代码displot

sns.displot(data = df1, x = 'num1',color='orange', kind = 'kde')
sns.displot(data = df1, x = 'num2',color='blue', kind = 'kde')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python seaborn displot

0
推荐指数
1
解决办法
2049
查看次数