Python 如何创建概率密度图?
我有以下数据框Python 如何创建概率密度图?,python,pandas,matplotlib,seaborn,Python,Pandas,Matplotlib,Seaborn,我有以下数据框数据(在我的真实数据集中,我有更多的数据): 为了查看time_diff值的分布,我创建了以下条形图: import seaborn as sns data['timegroup'] = pd.qcut(data['time_diff'], 150) sns.barplot(x='timegroup', y='avg_trips_per_day', data=data, estimator=sum) 它为每个bin(timegroup)获取avg\u trips\u per\u
数据
(在我的真实数据集中,我有更多的数据):
为了查看time_diff
值的分布,我创建了以下条形图:
import seaborn as sns
data['timegroup'] = pd.qcut(data['time_diff'], 150)
sns.barplot(x='timegroup', y='avg_trips_per_day', data=data, estimator=sum)
它为每个bin(timegroup
)获取avg\u trips\u per\u day
的值,并计算avg\u trips\u per\u day
的总和
我的结果如下:
因此,对于我的数据来说,这确实不是最好的可视化。我认为概率密度图更适合。在X轴中,我希望看到avg_trips_per_day
的值,而Y轴应该包含概率。
我该怎么做呢?您可以使用distplot
sns.distplot(data['avg\u trips\u per\u day'])
默认情况下,它会绘制一个直方图和一个内核密度估计器,但您可以通过kde=False
或histogram=False
对其进行调整,在您的数据框中没有timegroup
列。你可能错过了几行code@ClockSlave:抱歉,忘记添加一行代码。请查看我的更新。@ayhan:谢谢,这似乎起到了作用。@ayhan:如果我使用data[“time_diff”].unique()
,我会在实际数据集中看到最小值等于200。但是distplot
X轴包含其他值。比如0.0,0.1。你知道为什么会这样吗?另外,我确实需要一个显示时间差,而不是每天平均行程。
import seaborn as sns
data['timegroup'] = pd.qcut(data['time_diff'], 150)
sns.barplot(x='timegroup', y='avg_trips_per_day', data=data, estimator=sum)