如何将坐标传递给arviz / pymc3函数plot_posterior(类似于xarray.Dataset.sel)

2024-06-04

我正在 pymc3 中进行一些贝叶斯建模,并想使用plot_posterior(来自 arviz 包)绘制后验分布。生成的图在水平轴上尴尬地未对齐,我想将其移动到 -3 和 +3 之间精确绘制。不幸的是,我无法弄清楚应该传递给函数的内容来指定这一点。

arviz.plot_posterior 的文档指定参数“coords”具有定义“要绘制的 var_names 的坐标。传递给 Dataset.sel”大概这是我需要指定水平轴范围的内容,但它没有告诉我它期望什么样的价值。

我检查了 Dataset.sel 的文档,它指出它期望的第一个参数是“一个字典,其键与标量、切片或刻度标签数组给出的维度和值匹配”。我对此的解释是,键是与变量名称匹配的字符串,值是刻度线的一些可迭代结构。

我的变量称为“m”,是由以下代码生成的:

with pymc3.Model() as m1:
    m = pymc3.Normal('m', mu = 0, sigma = 1)
    obs = pymc3.Normal('obs', mu = m, sigma = 1, observed = numpy.random.randn(3))
    trace = pymc3.sample(1000, tune = 500, cores = 1)

我对plot_posterior的期望是这样的:

plot_posterior(trace, coords = {'m': [-3.0, -2,0, -1,0, 0.0, 1.0, 2.0, 3.0]})

它给了我错误“ValueError:维度或多索引级别 ['m'] 不存在”

想必我走在正确的轨道上,但我无法挖掘出该函数需要的参数的任何更精确的定义。感谢您的任何帮助,您可以提供。

编辑:我已经弄清楚如何扩展轴本身(技巧是 ax = mpl.pyplot.axes(xlim = (-3.0, 3.0))),但我仍然不知道如何扩展变量的绘图本身。


这实际上是你可以直接进入 matplotlib 的东西:pm.plot_posterior将返回一个轴,该轴具有大多数显示属性的 getter 和 setter:

ax, = pymc3.plot_posterior(trace)
ax.set_xlim(-3, 3)

The coords参数适用于多维随机变量。如果您的模型如下所示:

with pymc3.Model() as m1:
    m = pymc3.Normal('m', mu = 0, sigma = 1, shape = 4)
    obs = pymc3.Normal('obs', mu = m, sigma = 1, observed = numpy.random.randn(3, 4))
    trace = pymc3.sample(1000, tune = 500, cores = 1)

那么你的图将具有所有 4 个维度m:

pymc3.plot_posterior(trace)

您可以使用coords减少它:

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

如何将坐标传递给arviz / pymc3函数plot_posterior(类似于xarray.Dataset.sel) 的相关文章

随机推荐

  • 使用 .NET 将二进制转换器转换为十进制

    我已经开始掌握一些编程基础知识 但我仍然很新并且缺乏经验 我正在编写的新程序遇到问题 我想要一个程序 将 8 位二进制数放入文本框中 按下按钮 然后显示二进制数的十进制值 下面是我尝试过的代码 Public Class Form1 Priv
  • 计算列表中每个项目在 pandas 数据框列中出现的次数,并用逗号分隔值

    我有一个清单 citylist New York San Francisco Los Angeles Chicago Miami 和带有这些值的 pandas Dataframe df1 first last city email John
  • 为什么 Angular 4.3 中的 httpclient 返回 Object 而不是 any?

    Angular 4 3 中的新 HttpClient 类似乎又回来了Object代替any默认情况下 鉴于打字稿文档所述 这样做是否有特殊原因 永远不要使用数字 字符串 布尔值或对象类型 这些 类型指的是几乎从未使用过的非原始装箱对象 适当
  • Eigen:将每一行除以最后一行

    使用 Eigen 时我不太清楚其语法rowwise运营 我有一个特征矩阵 我想将每一行除以最后一行 所以如果我们从一个矩阵开始 r 0 1 2 3 4 5 然后在这个转变之后 我想要 r 0 2 5 6 1 1 最好该操作发生在适当的位置
  • 为日期范围选择器设置时间

    The 日期范围选择器 http www daterangepicker com 插件允许使用 setStartDate 和 setEndDate 方法设置日期 是否有任何方法可以在插件中设置时间 似乎没有一种方法可以仅设置时间 并且他们在
  • 如何向 iPhone 设置页面添加按钮?

    在 首选项 应用中 Safari 的设置页面包含标有 清除历史记录 或 清除缓存 的按钮 邮件应用程序的设置页面包含一个红色的大 删除帐户 按钮 有没有办法为我的应用程序创建这样一个带有按钮的设置页面 我检查了苹果的文档 http deve
  • PHP 7 上可以指定多个返回类型吗?

    我有一些可以返回的方法两种返回类型之一 我正在使用利用 MCV 的框架 因此重构这几个函数尤其没有吸引力 是否可以声明返回类型返回其中之一而在其他情况下失败 function test if this gt condition false
  • 带 url 参数的 Flask render_template

    我使用 pdf js 在网络中渲染 pdf 目标url的格式如下 http www example com book file abc pdf 我的问题是 我使用 Flask 模板来生成页面 return render template b
  • flutter 动态查询 Firebase Firestore

    我正在创建一个视图 用户可以在其中选择多个元素 然后 通过在按钮上执行 onTap 这应该生成查询并在其他视图上显示查询结果 我的挑战是确保我获得用户选择的所有条件 然后使用多个字段值构建查询 我应该执行一个查询 然后对该查询进行查询等等
  • Yii2 从 MySQL 中的表登录的分步指南

    我开始在 Yii2 中迈出第一步 到目前为止 我已经能够编写一个应用程序并将数据库中的表连接到它 就像我在 Yii1 中学到的那样 该表是contacts我的创建视图中的表单将数据发送到数据库 没有任何问题 问题是我只能在 Yii2 内置的
  • 如何在 MATLAB 中可视化球体的交集?

    似乎这个问题在一些地方被问过 包括SO https stackoverflow com questions 35130336 draws the intersecting volume of two spheres in matlab 我最
  • ui-router:传递一个不在url中的参数?

    我在传递不是 url 中的参数的参数时遇到问题 我基本上对点击事件有以下内容 let stateParams id event info id info event info this state go home showinfo stat
  • DSN 到连接字符串?

    我们有一个 ASP NET 网站 该网站使用一个数据库 我们希望能够使用连接字符串来访问该数据库 我们已经成功设置了一个 DSN 来连接到这个数据库 但我似乎无法发现连接字符串的正确魔力 是否有一种直接的方法可以将 DSN 中的值转换为连接
  • 使用 sklearn 进行稀疏主成分分析

    我正在尝试从中复制一个应用程序paper https people eecs berkeley edu elghaoui Pubs SPCAhandbookSV pdf 作者下载的地方20个新闻组 http scikit learn org
  • NHibernate:将一个类映射到两个相同的表

    我需要将一个实体映射到两个表 Invoice 和 InvoiceHistory 我不能将两个数据库表合并为一个并添加一个状态列来区分它们 这两个表具有完全相同的结构 但是 正如名称所示 InvoiceHistory 保留旧发票的历史记录 而
  • 如何从内存中清除C++中的向量[重复]

    这个问题在这里已经有答案了 我是 C 新手 所以这可能是一个新手问题 但我并不完全清楚如何从内存中清除它 我在网上搜索并查看了几个答案 但不清楚如何正确执行我想做的事情 如何在 C 中正确地从内存中清除向量 谢谢 如果这是重复的帖子 我深表
  • SQL Server 2008 中的 FREETEXT 查询不进行短语匹配

    我在 SQL Server 2008 中有一个全文索引表 我正在尝试使用 FULLTEXT 查询精确的短语匹配 我不认为使用 CONTAINS 或 LIKE 适合于此 因为在其他情况下查询可能不准确 用户没有用双引号括起短语 并且一般来说我
  • 如何在Codeblocks中调试?

    我刚刚完成了程序编码 但面临一些逻辑错误 我想调试程序 我正在使用Codeblocks 那么我需要做什么才能在程序运行时查看每个变量的状态和值 并逐行浏览程序 我基本上想做你在 Visual Studio 中做的事情 当你逐行浏览时 每个变
  • 在 Ruby 中,如何指定另一个目录中的文件作为输入?

    这可能有一个简单的答案 但我正在开发一个测试套件 它需要位于不同文件夹中的输入文件 我想使用相对路径 如下所示 graph Graph new lib test input txt 但鲁比不喜欢这样 使用这样的相对文件路径的最佳方法是什么
  • 如何将坐标传递给arviz / pymc3函数plot_posterior(类似于xarray.Dataset.sel)

    我正在 pymc3 中进行一些贝叶斯建模 并想使用plot posterior 来自 arviz 包 绘制后验分布 生成的图在水平轴上尴尬地未对齐 我想将其移动到 3 和 3 之间精确绘制 不幸的是 我无法弄清楚应该传递给函数的内容来指定这