Python 从csv数据框绘制列泊松分布的PMF

Python 从csv数据框绘制列泊松分布的PMF,python,matplotlib,Python,Matplotlib,我正在尝试编写一个函数,它使用plt.bar函数来绘制泊松分布的pmf 我是一个初学者,我不明白plt.bar是如何工作的,即使在看过 因此,如果我理解正确,您希望从泊松分布中提取n_pts数字,其每个间隔的平均事件数等于数据的平均值(来自dataframe列)。 然后你要画出分布图 如果是这样,您可以使用numpy轻松完成,它提供了从分布中提取随机数的函数。例如,从泊松分布中绘制数字 它比plt.bar更易于使用plt.bar 使用bar您必须选择一个箱子大小和箱子位置,自己计算每个箱子中有多

我正在尝试编写一个函数,它使用plt.bar函数来绘制泊松分布的pmf

我是一个初学者,我不明白plt.bar是如何工作的,即使在看过


因此,如果我理解正确,您希望从泊松分布中提取
n_pts
数字,其每个间隔的平均事件数等于数据的平均值(来自dataframe列)。
然后你要画出分布图

如果是这样,您可以使用
numpy
轻松完成,它提供了从分布中提取随机数的函数。例如,从泊松分布中绘制数字

它比plt.bar更易于使用
plt.bar

使用
bar
您必须选择一个箱子大小和箱子位置,自己计算每个箱子中有多少数据,并绘制直方图
plt.hist
为您完成所有这些

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

def plot_poisson(df, col='open', n_pts=100):
    lm = df[col].mean() #get the mean value of your data
    poisdata = np.random.poisson(lm, n_pts)
    plt.hist(poisdata, density=True, alpha=0.5)
    plt.xlabel("X")
    plt.ylabel("P(X|\mu)")
    plt.title("Poisson PMF")
    plt.show()
此函数生成的示例图片:

试试这个:

 def plot_poisson(df, col='open', n_pts=100):
    pts=np.arange(n_pts)
    fig,ax=plt.subplots(figsize=(10,5))
    lm = df[col].mean() #get the mean value of your data
    poisdata = np.random.poisson(lm)
    ax.bar(pts,poisdata.pmf(pts))
    ax.set_xlabel("X")
    ax.set_ylabel("P(X|\mu)")
    ax.set_title("Poisson PMF")
    return ax

你的问题不清楚。您的数据是否已经通过泊松分布生成?或者您想生成泊松分布数据以使用条形图进行绘图?我想生成泊松分布数据以进行绘图我得到一个断言错误“10!=100:您的条形图没有正确的补丁数。请确保使用n_pts参数。”我不明白为什么要合并n_pts参数。你能给点建议吗?不知道。您必须显示您正在使用的完整代码,并包含完整的回溯。请编辑您的问题,或打开一个新问题。
 def plot_poisson(df, col='open', n_pts=100):
    pts=np.arange(n_pts)
    fig,ax=plt.subplots(figsize=(10,5))
    lm = df[col].mean() #get the mean value of your data
    poisdata = np.random.poisson(lm)
    ax.bar(pts,poisdata.pmf(pts))
    ax.set_xlabel("X")
    ax.set_ylabel("P(X|\mu)")
    ax.set_title("Poisson PMF")
    return ax