Python绘图,其中辅助x轴链接到主要

问题描述 投票:0回答:1

我一直在努力完成这项看似简单的任务:如何将两个x轴与相关数据对齐。在我的情况下,一根轴是摄氏温度,另一根轴是华氏温度。

我想要实现的是获得两个x轴的对齐,以便:

32°F = 0°C和50°F = 10°C

通过这种关系,两个数据集将在温度方面对齐。

我想将两个单位集放在同一张图上,以便观看者可以根据它们习惯的单位来解释数据。

这是我的代码:

import plotly.graph_objects as go
from plotly.subplots import make_subplots
from plotly.graph_objs.layout import YAxis,XAxis,Margin

layout = go.Layout(
    title="Double X Axis Example",
    xaxis=XAxis(
        title="Celcius"
    ),
    xaxis2 = XAxis(
        title="Fahrenheits",
        overlaying= 'x', 
        side= 'top',
    ),
    yaxis=dict(
        title="Y values"
    ),
)

# Create figure with secondary x-axis
fig = go.Figure(layout=layout)

# Add traces
fig.add_trace(
    go.Scatter(x=[10, 20, 30], y=[4.5, 6, 5], name="data set in celcius"),
)

fig.add_trace(
    go.Scatter(x=[40, 60, 80], y=[4, 5, 6.5], name="data set in fahrenheit", xaxis='x2'),
)

fig.show()

这里是轴未对齐的结果图形(10°C = 40°F!?):Resulting figure

谢谢,

python plotly
1个回答
0
投票

在这种情况下,可能会帮助设置x轴的范围,如下所示:

fig.add_trace(
    go.Scatter(x=[10, 20, 30], y=[4.5, 6, 5,], name="data set in celcius",xaxis="x1"),
)

fig.add_trace(
    go.Scatter(x=[40, 60, 80,81], y=[4, 5, 6.5], name="data set in fahrenheit", xaxis='x2'),
)


fig.update_layout(
    xaxis1=dict(range=[0, 100]),
    xaxis2=dict(range=[32, 212]),
    )

...可能计算x1所需的极限,然后以x2为基础。

© www.soinside.com 2019 - 2024. All rights reserved.