gpt4 book ai didi

python - 在同一图上将数据帧绘制为 'hist' 和 'kde'

转载 作者:太空狗 更新时间:2023-10-29 20:15:20 25 4
gpt4 key购买 nike

我有一个包含用户信息的 pandas dataframe。我想将用户的年龄绘制为 kind='kde'kind='hist' 在同一图上。目前我可以拥有两个独立的地 block 。数据框类似于:

member_df=    
user_id Age
1 23
2 34
3 63
4 18
5 53
...

使用

ax1 = plt.subplot2grid((2,3), (0,0))
member_df.Age.plot(kind='kde', xlim=[16, 100])
ax1.set_xlabel('Age')

ax2 = plt.subplot2grid((2,3), (0,1))
member_df.Age.plot(kind='hist', bins=40)
ax2.set_xlabel('Age')

ax3 = ...

我知道 kind='kde' 会给出 y 轴的频率,而 kind='kde' 会给出累积分布,但是是否存在一种将两者结合起来并用频率表示 y 轴的方法?

最佳答案

pd.DataFrame.plot() 返回绘制到的 ax。您可以将其重复用于其他地 block 。

尝试:

ax = member_df.Age.plot(kind='kde')
member_df.Age.plot(kind='hist', bins=40, ax=ax)
ax.set_xlabel('Age')

示例
我先绘制 hist 放在背景中
另外,我将 kde 放在 secondary_y 轴上

import pandas as pd
import numpy as np


np.random.seed([3,1415])
df = pd.DataFrame(np.random.randn(100, 2), columns=list('ab'))

ax = df.a.plot(kind='hist')
df.a.plot(kind='kde', ax=ax, secondary_y=True)

enter image description here


回复评论
使用 subplot2grid。只需重用 ax1

import pandas as pd
import numpy as np

ax1 = plt.subplot2grid((2,3), (0,0))

np.random.seed([3,1415])
df = pd.DataFrame(np.random.randn(100, 2), columns=list('ab'))

df.a.plot(kind='hist', ax=ax1)
df.a.plot(kind='kde', ax=ax1, secondary_y=True)

enter image description here

关于python - 在同一图上将数据帧绘制为 'hist' 和 'kde',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39987071/

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