当我运行下面的代码时,我得到了4个不同的直方图,它们是按组分开的。我如何使用4个不同的sns.distplot()来实现相同类型的可视化?
sns.distplot()
df = pd.DataFrame({ "group": [1, 1, 2, 2, 3, 3, 4, 4], "similarity": [0.1, 0.2, 0.35, 0.6, 0.7, 0.25, 0.15, 0.55] }) df['similarity'].hist(by=df['group'])
q8l4jmvw1#
您可以从seaborn使用FacetGrid:
FacetGrid
import seaborn as sns g = sns.FacetGrid(data=df, col='group', col_wrap=2) g.map(sns.histplot, 'similarity')
输出:
dldeef672#
seaborn
matplotlib
pandas
seaborn v0.11.2
sns.distplot
sns.histplot
sns.displot
common_bins
True
Fales
python 3.10
pandas 1.4.2
matplotlib 3.5.1
seaborn 0.11.2
common_bins=False
import seaborn as sns # plot g = sns.displot(data=df, x='similarity', col='group', col_wrap=2, common_bins=False, height=4)
common_bins=True
pandas.DataFrame.plot
kind='hist'
bins=4
g = sns.displot(data=df, x='similarity', col='group', col_wrap=2, common_bins=True, bins=4, height=4)
# reshape the dataframe to a wide format dfp = df.pivot(columns='group', values='similarity') axes = dfp.plot(kind='hist', subplots=True, layout=(2, 2), figsize=(9, 9), ec='k', bins=4, sharey=True)
2条答案
按热度按时间q8l4jmvw1#
您可以从seaborn使用
FacetGrid
:输出:
dldeef672#
seaborn
是matplotlib
的高级API,pandas
使用matplotlib
作为默认绘图后端。seaborn v0.11.2
开始,sns.distplot
已弃用,根据文档中的警告,不建议直接使用FacetGrid
。sns.distplot
被轴级函数sns.histplot
和图形级函数sns.displot
替换。common_bins
与True
和Fales
之间的区别。*在
python 3.10
、pandas 1.4.2
、matplotlib 3.5.1
、seaborn 0.11.2
中测试common_bins=False
common_bins=True
(4)sns.displot
和pandas.DataFrame.plot
与kind='hist'
和bins=4
产生相同的图。