python - Seaborn:具有相对频率的 distplot()

标签 python pandas matplotlib data-visualization seaborn

我正尝试在 Seaborn 中为一个研究项目制作一些直方图。我希望 y 轴为相对频率,x 轴为 -180 到 180。 这是我的一个直方图的代码:

import pandas as pd
from matplotlib import pyplot as plt
%matplotlib inline
import seaborn as sns

df = pd.read_csv('sample.csv', index_col=0)

x = df.Angle
sns.distplot(x, kde=False);

输出: seaborn frequency plot

我不知道如何将输出转换为频率而不是计数。我尝试了多种不同类型的图表来获得频率输出,但无济于事。我也遇到过这个问题,它似乎在要求 countplot with frequencies (但有另一个功能。)我试过用它作为指南但失败了。任何帮助将不胜感激。我对这个软件和 Python 都很陌生。

我的数据如下所示,可以下载: sample data

最佳答案

sns.displot 参数允许从计数转换为频率(或密度,如 sns 所指)。它通常为 False,因此您必须使用 True 启用它。在你的情况下:

sns.distplot(x, kde=False, norm_hist=True)

然后如果你想让 x 轴从 -180 到 180,只需使用:

plt.xlim(-180,180)

来自Seaborn Docs :

norm_hist : bool, optional

If True, the histogram height shows a density rather than a count. This is implied if a KDE or fitted density is plotted.

关于python - Seaborn:具有相对频率的 distplot(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46018032/

相关文章:

python - 具有多个条件的 Pandas Groupby

Python Numpy 在具有共享轴的 3D 图和 2D 图之间添加 hspace

python - 如何在 Matplotlib 的堆叠水平条形图中显示数据值

python - %matplotlib inline 在 iPython 和 Jupyter 控制台上不起作用

python - 计算 Pandas DataFrame 中的重复值

python - 不断收到 ValueError : not enough values to unpack (expected 2, 得到 1)

python - 需要使用 pandas 将纪元时间转换为 EST

python - 在python中,如何将多元高斯分布划分为单独的高斯分布?

python - 从 .html 文件读取内容的简单 Flask 应用程序。外部样式表被阻止?

python pandas 合并数据透视表