我有 2 个不同的条形图,它们有一个共同的 X 轴和 2 个不同的 Y 轴。我想使用 python 将这两个使用 X 轴的图合并为一个

Posted

技术标签:

【中文标题】我有 2 个不同的条形图,它们有一个共同的 X 轴和 2 个不同的 Y 轴。我想使用 python 将这两个使用 X 轴的图合并为一个【英文标题】:I have 2 different bar charts with a common X axis and 2 different Y axis. I want to combine those 2 graphs using the X axis into one using python 【发布时间】:2021-09-29 22:01:47 【问题描述】:

第一张图片的代码:

import plotly.express as px
fig = px.bar(data, x='date', y='oi_diff_nifty15800CE',title='Oi chain of Nifty 15800CE')
fig.update_layout(width=650,height=500)
fig.show()

第二张图片的代码:

import plotly.express as px
fig = px.bar(data, x='date', y='oi_diff_nifty15800PE',title='Oi chain of Nifty 15800PE') 
fig.update_layout(width=650,height=500)
fig.show()

【问题讨论】:

【参考方案1】: 您确实需要说明您在组合之外想要实现的目标 有模拟数据 这里有两种方法
    使用add_traces() 将跟踪从一个图形添加到另一个图形 只需更改px.bar() 参数,使其生成为单个图形
import pandas as pd
import numpy as np
import plotly.express as px

# simulate data...
data = pd.DataFrame("date": pd.date_range("21-jun-2021", periods=2),
        "oi_diff_nifty15800CE": np.random.randint(5, 15, 2),
        "oi_diff_nifty15800PE": np.random.randint(5, 15, 2),)

fig = px.bar(data, x="date", y="oi_diff_nifty15800CE", title="Oi chain of Nifty 15800CE")
# build from two different figures
fig.update_layout(width=650, height=300).add_traces(
    px.bar(data, x="date", y="oi_diff_nifty15800PE", title="Oi chain of Nifty 15800PE").data).show()

# just change params...
px.bar(data, x="date", y=["oi_diff_nifty15800PE","oi_diff_nifty15800CE"], barmode="group").update_layout(width=650, height=300).show()


【讨论】:

您好,感谢您的回复。实际上,我正在尝试为股票数据的看涨期权和看跌期权创建一个期权链,我想在其中合并这两个图表并并排显示看涨期权和看跌期权图表。 我无法理解您所说的哪些参数需要在 px.bar() 中更改,您能指定吗? 从您的评论中,我相信您想要的是将 y 定义为列表而不是字符串。代码中的第二个示例

以上是关于我有 2 个不同的条形图,它们有一个共同的 X 轴和 2 个不同的 Y 轴。我想使用 python 将这两个使用 X 轴的图合并为一个的主要内容,如果未能解决你的问题,请参考以下文章

2 个 y 轴不同但 x 轴相同但范围不同的核心图

条形图,y 轴计数,x 轴年份,2 个颜色组

您如何调整条形宽度以匹配辅助 x 轴?

x轴上方和下方计数的堆积条形图?

在ggplot中使用条形图时出现意外的x轴刻度线

Plotly Python:在具有多个 Y 轴的分组条形图中对齐 X 轴