如何在带有子图的绘图中设置辅助x轴及其范围?

2023-12-03

有谁知道如何在绘图中设置辅助 x 轴及其范围?

我试图在这里显示垂直直方图,但它目前仍然太小

垂直直方图

enter image description here

import pandas as pd
import numpy as np
import plotly.graph_objects as go
from plotly.subplots import make_subplots
from plotly.graph_objs.layout import YAxis,XAxis,Margin

x1 = np.linspace(0, 4, 41)
y1 = (x1-2)**3+2
y2 = x1*0+2

x1_sample = np.random.normal(2,0.3,5000)
y1_sample = (x1_sample-2)**3+2
data = np.column_stack((x1_sample, y1_sample))
df_hist = pd.DataFrame(data = data, columns = ['x1_sample', 'y1_sample'])


fig = make_subplots(rows=1, cols=2, specs = [[{"secondary_y": True}, {"secondary_y": True}]], horizontal_spacing=0.2)

# Subplot 1
## Line
fig.update_yaxes(range = [0, 4], dtick = 1, secondary_y=False)
fig.add_trace(
    go.Scatter(x = x1 , y = y1, mode='lines'),
    row = 1, col = 1
)

fig.add_trace(
    go.Scatter(x = x1, y = y2, mode = 'lines'),
    row = 1, col = 1
)

## Histogram
fig.update_yaxes(range = [0, 0.5], dtick = 0.1, secondary_y=True)
fig.add_trace(
    go.Histogram(x = df_hist['x1_sample'], histnorm='probability', nbinsx=40),
    secondary_y=True,
    row = 1, col = 1
)

fig.add_trace(
    go.Histogram(y = df_hist['y1_sample'], histnorm='probability', nbinsy=40),
    row = 1, col = 1
)

要获得示例中所需的内容,只需将以下行添加到您的设置中:

fig.update_layout(xaxis2= {'anchor': 'y', 'overlaying': 'x', 'side': 'top'})
fig.data[3].update(xaxis='x2')
fig.update_layout(xaxis2_range=[-0,0.6])

第 1 行设置辅助 x 轴,第 2 行为其指定轨迹。我假设fig.data[3]是正确的跟踪,但您可以自己检查。毫不奇怪,第 3 行设置了辅助 x 轴的范围。

Plot

enter image description here

完整代码:

import numpy as np
import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots
from plotly.graph_objs.layout import YAxis,XAxis,Margin


x1 = np.linspace(0, 4, 41)
y1 = (x1-2)**3+2
y2 = x1*0+2

x1_sample = np.random.normal(2,0.3,5000)
y1_sample = (x1_sample-2)**3+2
data = np.column_stack((x1_sample, y1_sample))
df_hist = pd.DataFrame(data = data, columns = ['x1_sample', 'y1_sample'])


fig = make_subplots(rows=1, cols=2, specs = [[{"secondary_y": True}, {"secondary_y": True}]],
                    horizontal_spacing=0.2,
                    shared_xaxes = False)

# Subplot 1
## Line
fig.update_yaxes(range = [0, 4], dtick = 1, secondary_y=False)
fig.add_trace(
    go.Scatter(x = x1 , y = y1, mode='lines'),
    row = 1, col = 1
)

fig.add_trace(
    go.Scatter(x = x1, y = y2, mode = 'lines'),
    row = 1, col = 1
)

## Histogram
fig.update_yaxes(range = [0, 0.5], dtick = 0.1, secondary_y=True)
fig.add_trace(
    go.Histogram(x = df_hist['x1_sample'], histnorm='probability', nbinsx=40),
    secondary_y=True,
    row = 1, col = 1
)

fig.add_trace(
    go.Histogram(y = df_hist['y1_sample'], histnorm='probability', nbinsy=40),
    row = 1, col = 1
)

fig.update_layout(xaxis2= {'anchor': 'y', 'overlaying': 'x', 'side': 'top'})
fig.data[3].update(xaxis='x2')
fig.update_layout(xaxis2_range=[-0,0.6])


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

如何在带有子图的绘图中设置辅助x轴及其范围? 的相关文章

随机推荐

  • 高效四元数到欧拉变换

    我使用以下 Python 函数将四元数转换为欧拉角 import math def quaternion to euler angle w x y z ysqr y y t0 2 0 w x y z t1 1 0 2 0 x x ysqr
  • Spring框架无法启动嵌入式容器

    我正在关注 Spring in Action 第四版第 5 章 但我一直停留在第一个示例上 这是我的 Eclipse Luna 项目结构 如果我将这个项目作为 Spring Boot App 运行 那么它会抛出异常 org springfr
  • 如何搜索XML文件中存储的字符串内容?

    我是安卓开发新手 我有一个包含一堆片段的活动 每个片段显示不同的文本 我在运行时从 strings xml 设置文本 即 tv setText 这是我的 strings xml 的示例
  • 立即将 stdout 重定向到 tkinter(无需等待进程完成)

    我正在编写一个 python 应用程序来获取用户的一些输入并根据这些输入调用 shell 脚本 这个 shell 脚本可以运行相当长的一段时间 我想将它生成的输出 实时 重定向到 tkinter 我设法做到了这一点 但它仅在 shell 脚
  • 在c++中计算unicode字符

    你怎么数unicodeC 中 UTF 8 文件中的字符 也许如果有人愿意向我展示一种 独立 方法 或者使用一个简短的例子http icu project org index html EDIT 一个重要的警告是 我需要建立每个字符的计数 所
  • 从 Storyboard 投射到子类

    想象一下我有一个 BaseViewController 然后我有 2 个场景 新建和编辑 两者共享相同的 UI 和大部分逻辑 所以我创建了类 NewViewController 和 EditViewController 子类化 BaseVi
  • 如何知道 exec 函数中的命令错误?

    我正在使用 ffmpeg 命令通过 php 中的 exec 函数来剪切视频 但它没有创建视频文件 也没有显示任何错误 我使用了 exec 如下 exec ffmpeg i input flv ss 00 00 30 0 t 00 00 10
  • 在初始化之前从根状态调用 connectOutlets?

    http jsfiddle net pauldechov 89S5p 在 root 的 connectOutlets 中 App似乎仍然不 initialize d connectOutlets 不适合与根状态一起使用吗 为什么 如果我每次
  • 在 Swift 3 通知中心观察者中使用选择器

    NotificationCenter default addObserver self selector Selector uploaded name NSNotification Name rawValue uploaded object
  • 如何使用组合框过滤Datagridview而不更改数据源

    我正在使用 Windows 窗体编写一个程序 并且我已经构建了一些代码 如下所示 在文本框中写入站点 URL 然后单击 开始 按钮 匹配的数据将显示在 DataGridViews 中 我有 6 个 DataGridView 在第一个 Dat
  • 错误添加SceneBuilder快捷链接后如何将Scene Builder添加到Intellij

    所以我安装了Intellij第一次 我错误地链接了场景构建器快捷方式链接到FXML文件并不断收到此错误 IntelliJ failed to start scene builder 经过大量搜索后 我无法找到如何重置SceneBuilder
  • ggplot2 轴文本的奇怪理由

    我遇到了一个奇怪的轴文本对齐问题 如下图所示 您可能需要放大图像才能看到问题 正如您所看到的 x 轴文本绘制在刻度线的下方 y 轴文本绘制在刻度线的左侧 并且刻度线本身遍布各处 可能导致此行为的原因是 也许更重要的是 可以采取什么措施来避免
  • 浏览器会短暂显示没有样式的页面(视觉故障)

    我观察到 Internet Explorer 7 或 8 没关系 很少会显示我们的网页 www epsitec ch 短时间内不应用CSS 布局看起来完全被破坏了 所有内容都从上到下按顺序显示 当页面加载完成后 所有内容终于正确显示 我们的
  • Python 分割字符串并打乱中间的内容

    我在使用 python 程序时遇到问题 我需要该程序混淆单词的中间 同时保持外部两个字母完好无损 我相信我已经成功地将单词分成三个不同的部分 我只是不能弄清楚我应该如何打乱单词的中间部分 word input Enter a word fi
  • 使用 boost 函数进行 SolrNet 查询

    我正在尝试使用这个库 看起来非常好 但我很难理解如何向我的查询添加额外的参数 例如升压函数等 如何做到这一点 您可以使用 QueryOptions 的 ExtraParams 属性将任何参数添加到 Solr 查询字符串 例子 ISolrOp
  • 单击表单中的按钮会导致页面刷新

    我有一个 Angular 表单 其中有两个按钮标签 一键提交表单ng click 另一个按钮纯粹用于导航ng click 然而 当单击第二个按钮时 AngularJS 会导致页面刷新 从而触发 404 我在函数中放置了一个断点 它正在触发我
  • 如何在 stringi 包中使用反向引用?

    在 R 中我可以使用 1引用捕获组 但是 当使用 stringi 包时 这不会按预期工作 library stringi fileName lt hello you lst fileName lt stri replace first re
  • 从数据库中检索一百万条记录

    有一个数据库 它的表中大约包含 200 万条记录 我从我的java代码中运行了查询 就像这样 select from table 它将从结果集中的数据库中获取完整的数据 或不 如果是 那么它将如何工作 我想了解此检索的工作原理 请告诉我 我
  • 防止 const 成员函数更改成员数组

    显然 const 成员函数仍然允许更改类成员指向的数据 这是我的意思的一个例子 class MyClass public MyClass int getSomething const private int data data new in
  • 如何在带有子图的绘图中设置辅助x轴及其范围?

    有谁知道如何在绘图中设置辅助 x 轴及其范围 我试图在这里显示垂直直方图 但它目前仍然太小 垂直直方图 import pandas as pd import numpy as np import plotly graph objects a