使用叠加的 PDF 绘制直方图

2023-12-13

这是我之前几个问题的后续。这是我正在使用的代码:

import pandas as pd
import matplotlib.pyplot as plt
import scipy.stats as stats
import numpy as np
dictOne = {'Name':['First', 'Second', 'Third', 'Fourth', 'Fifth', 'Sixth', 'Seventh', 'Eighth', 'Ninth'],
           "A":[1, 2, -3, 4, 5, np.nan, 7, np.nan, 9],
           "B":[4, 5, 6, 5, 3, np.nan, 2, 9, 5],
           "C":[7, np.nan, 10, 5, 8, 6, 8, 2, 4]}
df2 = pd.DataFrame(dictOne)
column = 'B'
df2[df2[column] > -999].hist(column, alpha = 0.5)
param = stats.norm.fit(df2[column].dropna())   # Fit a normal distribution to the data
print(param)
pdf_fitted = stats.norm.pdf(df2[column], *param)
plt.plot(pdf_fitted, color = 'r')

I'm trying to make a histogram of the numbers in a single column in the dataframe -- I can do this -- but with an overlaid normal curve...something like the last graph on here. I'm trying to get it working on this toy example so that I can apply it to my much larger dataset for real. The code I've pasted above gives me this graph: enter image description here

为什么不pdf_fitted与该图中的数据匹配吗?如何叠加正确的 PDF?


你应该用绘制直方图density=True如果您希望将其与真正的 PDF 进行比较。否则你的归一化(幅度)将会关闭。

此外,在绘制 pdf 时,您需要指定 x 值(作为有序数组):

fig, ax = plt.subplots()

df2[df2[column] > -999].hist(column, alpha = 0.5, density=True, ax=ax)

param = stats.norm.fit(df2[column].dropna())
x = np.linspace(*df2[column].agg([min, max]), 100) # x-values

plt.plot(x, stats.norm.pdf(x, *param), color = 'r')
plt.show()

enter image description here


顺便说一句,使用直方图来比较连续变量与分布并不总是最好的。 (您的样本数据是离散的,但链接使用连续变量)。箱的选择可能会混淆直方图的形状,这可能会导致错误的推断。相反,ECDF 是连续变量分布的更好(无选择)的说明:

def ECDF(data):
    n = sum(data.notnull())
    x = np.sort(data.dropna())
    y = np.arange(1, n+1) / n
    return x,y

fig, ax = plt.subplots()

plt.plot(*ECDF(df2.loc[df2[column] > -999, 'B']), marker='o')

param = stats.norm.fit(df2[column].dropna())
x = np.linspace(*df2[column].agg([min, max]), 100) # x-values

plt.plot(x, stats.norm.cdf(x, *param), color = 'r')
plt.show()

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用叠加的 PDF 绘制直方图 的相关文章

随机推荐

  • 当用户密码过期或“用户下次登录时必须更改密码”时如何检查 AD 用户凭据

    我想知道是否有任何 Net 方法可以验证 Active Directory 用户凭据 即使用户的密码已过期或用户设置了 用户必须在下次登录时更改密码 我已经尝试过PrincipalContext ValidateCredential 这对我
  • 从 mysql 字符串列中去除数字/数字字符

    我在 mysql 表中有一些列 将人名存储为字符串和递增数字的组合以确保唯一性 因此我将名称存储为 Patrick Patrick1 Patrick2 Patrick10 David David2 David5 如何仅检索字母名称本身 而不
  • Java- Apache POI XSSF - 自定义 RGB Cellbackground 不起作用

    我想为我的单元格背景颜色使用自定义 RGB 颜色 38 38 38 为此 我使用以下代码 IndexedColorMap colorMap wb getStylesSource getIndexedColors XSSFColor cust
  • 离开页面时弹出Js,但提交表单时不弹出

    当用户尝试离开页面时 我在网站上使用此代码在弹出窗口中显示警告消息 然而 这是一个带有表单的页面 当用户提交表单时 会出现没有意义的弹出窗口 如何修改此代码 以便仅当用户以各种可能的方式离开页面 关闭选项卡 单击站点徽标 刷新页面 时才出现
  • 复制特定长度的字符

    如何用特定字符 如 make string 和长度 y 4 填充字符串 结果为 yyyy 我知道在 C 中有类似的内容 fillstring 在 C 中也存在 只需使用适当的构造函数 string text new string y 4
  • Bash 或 GoogleCL:字符串参数中的新行

    嗨 我正在使用GoogleCL 版本 0 9 11将视频上传到 Youtube 我的操作系统是 CentOS 5 5 和 Python 2 5 其中一个字符串参数包含换行符 n 无法正常显示 google youtube post vide
  • Jira Rest Java 客户端:缺少 Jersey 中的 ApacheHttpClientConfig

    我正在关注JRJC教程 第二行在这里 final JerseyJiraRestClientFactory factory new JerseyJiraRestClientFactory final JiraRestClient restCl
  • 使用 Cocoapods 安装 Firestore

    我正在尝试在我的项目中安装 firestore 当我尝试安装它时 Xcode 显示 致命错误 找不到模块映射文件 Users account Documents myapp Pods Headers Private openssl grpc
  • GKSession 对等点断开连接导致其他对等点显示为断开连接

    我的应用程序使用 GKSession 和 GKSessionModePeer 它必须处理对等点的任意连接和断开连接 因为这是一个长时间运行的应用程序 用户应该能够进入后台并稍后返回 这在大多数情况下都工作得很好 但有时 当对等方断开连接时
  • 以编程方式关闭 GPS

    我拥有的 目前我的应用程序正在通过 GPS 提供位置 我想要的是 当我退出应用程序后 GPS 将自动关闭 因为它不断地告诉我位置 看起来很奇怪 而且 GPS 消耗大量电池 看看上面的评论线程 似乎可以通过编程方式关闭 GPS 但只看到 12
  • 如何在 WP7 上以编程方式打开/关闭 WiFi

    我想知道是否有可能以编程方式打开和关闭 wifi 我的想法是有一个后台任务来查找地理坐标并切换 wifi 设置 无论手机是否在以前保存的位置范围内 然而我看到的所有应用程序都是获取 wifi 状态并快速跳转到 wifi 设置的应用程序 我想
  • Visual Studio 2012 的注册表权限

    在创建网络应用程序期间 我收到以下弹出消息 Visual Studio没有权限从注册表读取模板信息 这通常是由注册表权限问题引起的 有人有解决办法吗 请帮我 我想看看 Visual Studio 的新功能 Thanks 这可能是一个很晚的答
  • 如何更改 Java 中的日期格式? [复制]

    这个问题在这里已经有答案了 我需要使用 Java 更改日期格式 dd MM yyyy to yyyy MM dd 如何使用从一种日期格式转换为另一种日期格式简单日期格式 final String OLD FORMAT dd MM yyyy
  • PHP 5.2 的 DateTime::diff() 有什么用处?

    PHP 5 2 中是否有相当于 DateTime diff 的函数 我的本地服务器是 PHP 5 3 并使用 DateTime diff 然后我发现我的实时站点使用 PHP 5 2 并给出错误 Fatal error Call to und
  • CKEditor - Webkit 浏览器中的编辑器宽度溢出

    我发现工具栏不要在 WebKit 浏览器中自动换行 Safari Chrome 有一个三岁的虫子报告了 CKEditor 3 但它已关闭 也许这就是一种回归 我没有在我的配置中设置宽度 我希望编辑器自动扩展到可用宽度 编辑器位于一个div元
  • EF Core 2.0.0 一对一或零与 Fluent Api

    在 Fluent Api 中EF 核心 2 0 0 没有任何方法HasRequired and HasOptional 我有两个模型 人员和员工 public class Person public int Id get set publi
  • 如何编写接口的junit测试?

    为接口编写 junit 测试以便将它们用于具体的实现类的最佳方法是什么 例如您有这个接口和实现类 public interface MyInterface Return the given value public boolean myMe
  • 一种热编码映射

    为了离散化分类特征 我使用了 LabelEncoder 和 OneHotEncoder 我知道 LabelEncoder 按字母顺序映射数据 但是 OneHotEncoder 如何映射数据 我有一个熊猫数据框 dataFeat有 5 个不同
  • Eclipse 不接受集合排序

    import java io BufferedReader import java util Collections import java io File import java io FileNotFoundException impo
  • 使用叠加的 PDF 绘制直方图

    这是我之前几个问题的后续 这是我正在使用的代码 import pandas as pd import matplotlib pyplot as plt import scipy stats as stats import numpy as