Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PDF绘图关注点_Python_Matplotlib_Scipy - Fatal编程技术网

Python PDF绘图关注点

Python PDF绘图关注点,python,matplotlib,scipy,Python,Matplotlib,Scipy,我尝试了以下手动方法: dict = {'id': ['a','b','c','d'], 'testers_time': [10, 30, 15, None], 'stage_1_to_2_time': [30, None, 30, None], 'activated_time' : [40, None, 45, None],'stage_2_to_3_time' : [30, None, None, None],'engaged_time' : [70, None, None, None]}

我尝试了以下手动方法:

dict = {'id': ['a','b','c','d'], 'testers_time': [10, 30, 15, None], 'stage_1_to_2_time': [30, None, 30, None], 'activated_time' : [40, None, 45, None],'stage_2_to_3_time' : [30, None, None, None],'engaged_time' : [70, None, None, None]} 
df = pd.DataFrame(dict, columns=['id', 'testers_time', 'stage_1_to_2_time', 'activated_time', 'stage_2_to_3_time', 'engaged_time'])

df= df.dropna(subset=['testers_time']).sort_values('testers_time')

prob = df['testers_time'].value_counts(normalize=True)
print(prob)
#0.333333,  0.333333,  0.333333
plt.plot(df['testers_time'], prob, marker='.', linestyle='-') 

plt.show()
我在stackoverflow上尝试了以下方法:

dict = {'id': ['a','b','c','d'], 'testers_time': [10, 30, 15, None], 'stage_1_to_2_time': [30, None, 30, None], 'activated_time' : [40, None, 45, None],'stage_2_to_3_time' : [30, None, None, None],'engaged_time' : [70, None, None, None]} 
df = pd.DataFrame(dict, columns=['id', 'testers_time', 'stage_1_to_2_time', 'activated_time', 'stage_2_to_3_time', 'engaged_time'])

df= df.dropna(subset=['testers_time']).sort_values('testers_time')

fit = stats.norm.pdf(df['testers_time'], np.mean(df['testers_time']), np.std(df['testers_time']))  
print(fit)
#0.02902547,  0.04346777,  0.01829513]
plt.plot(df['testers_time'], fit, marker='.', linestyle='-')
plt.hist(df['testers_time'], normed='true')      

plt.show()
正如你所看到的,我得到了完全不同的值-概率对于#1是正确的,但是对于#2则不是正确的(加起来也不是100%),直方图的y轴(%)基于6个箱子,而不是3个


你能解释一下我如何得到#2的正确概率吗?

第一种方法给你一个概率质量函数。第二个函数给出一个概率密度,因此命名为概率密度函数(pdf)。因此两者都是正确的,它们只是显示了一些不同的东西

如果您在更大范围内(例如,标准偏差的10倍)评估pdf,它将看起来很像预期的高斯曲线

import pandas as pd
import scipy.stats as stats
import numpy as np
import matplotlib.pyplot as plt

dict = {'id': ['a','b','c','d'], 'testers_time': [10, 30, 15, None], 'stage_1_to_2_time': [30, None, 30, None], 'activated_time' : [40, None, 45, None],'stage_2_to_3_time' : [30, None, None, None],'engaged_time' : [70, None, None, None]} 
df = pd.DataFrame(dict, columns=['id', 'testers_time', 'stage_1_to_2_time', 'activated_time', 'stage_2_to_3_time', 'engaged_time'])

df= df.dropna(subset=['testers_time']).sort_values('testers_time')

mean = np.mean(df['testers_time'])
std = np.std(df['testers_time'])
x = np.linspace(mean - 5*std, mean + 5*std)

fit = stats.norm.pdf(x, mean, std)  
print(fit)

plt.plot(x, fit, marker='.', linestyle='-')
plt.hist(df['testers_time'], normed='true')      

plt.show()

第一种方法为您提供了一种可能性。第二个函数给出一个概率密度,因此命名为概率密度函数(pdf)。因此两者都是正确的,它们只是显示了一些不同的东西。@ImportanceOfBeingErnest那么第一个是概率分布函数吗?或者它有其他名称吗?@ImportanceOfBeingErnest如果第二个是PDF,那么为什么不从0开始呢?这将是一个概率质量函数。您可以自己选择计算此函数的值。如果包含任何极值,则在该点处为0。