gpt4 book ai didi

Python Plotly CDF 与频率分布数据

转载 作者:行者123 更新时间:2023-12-04 08:23:01 27 4
gpt4 key购买 nike

如何使用 Plotly 在 Pandas DataFrame 中绘制频率分布数据的 CDF 图?假设以下玩具数据

value   freq    
1 3
2 2
3 1
所有示例都展示了如何使用如下所示的原始数据进行操作:
value
1
1
1
2
2
3
我可以用 Pandas .plot像这样(但我更愿意用 Plotly 做同样的事情):
stats_df = df
stats_df['pdf'] = stats_df['count'] / sum(stats_df['count'])

# calculate CDF
stats_df['cdf'] = stats_df['pdf'].cumsum()
stats_df = stats_df.reset_index()

# plot
stats_df.plot(x = 'n_calls',
y = ['pdf', 'cdf'],
logx = True,
kind = 'line',
grid = True)
如果你想用玩具数据集进行演示,这里有一个: https://raw.githubusercontent.com/plotly/datasets/master/2010_alcohol_consumption_by_country.csv
引用:
https://plotly.com/python/v3/discrete-frequency/
https://plotly.com/python/distplot/

最佳答案

无法在 Plotly 中构建 CDF。
在 Plotly 上,只能绘制 PDF 和直方图(酒精 sample 见下文)。
enter image description here
上图的代码如下所示:

import plotly.figure_factory as ff
import pandas as pd

data = pd.read_csv(
'https://raw.githubusercontent.com/plotly/datasets/master/2010_alcohol_consumption_by_country.csv')

x = data['alcohol'].values.tolist()

group_labels = ['']
fig = ff.create_distplot([x], group_labels,
bin_size=.25, show_rug=False)
fig.show()

如果您正好需要 CDF,则使用第三方库进行数据准备。
在下面的示例中,我使用的是 Numpy。
enter image description here
上图的代码如下所示:
import plotly.graph_objs as go
import numpy as np
import pandas as pd

data = pd.read_csv(
'https://raw.githubusercontent.com/plotly/datasets/master/2010_alcohol_consumption_by_country.csv')

x = data['alcohol'].values.tolist()

hist, bin_edges = np.histogram(x, bins=100, density=True)
cdf = np.cumsum(hist * np.diff(bin_edges))
fig = go.Figure(data=[
go.Bar(x=bin_edges, y=hist, name='Histogram'),
go.Scatter(x=bin_edges, y=cdf, name='CDF')
])
fig.show()
请注意,CDF 是一条虚线。这是因为这不是未知分布的近似函数。
为了得到一个平滑的函数,你需要知道分布规律。

关于Python Plotly CDF 与频率分布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65402296/

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