【问题标题】:Python Plotly: make secondary axis log scalePython Plotly:制作辅助轴对数刻度
【发布时间】:2020-07-10 13:12:08
【问题描述】:

我有一个数据集 x,y1,y2。使用 Plotly,我想:

  • 在轴 1 上绘制 y1:线性
  • 在axis2上绘制y2:log

我想它会看起来像这样:

fig.update_layout( yaxis_type="log", secondary_y=True) #A command like this one

这是我目前的设置

import pandas as pd

import plotly.express as px
from plotly.subplots import make_subplots
import plotly.graph_objects as go


df= pd.DataFrame({'x': [0,1,2,3,4], 'y1' : [2,4,6,8,10], 'y2': [5,10,20,30,35]})

fig = make_subplots(specs=[[{"secondary_y": True}]])

fig.add_trace(
    go.Scatter(x=df["x"], y=df["y1"], name='normal scale'),
    secondary_y=False
)


fig.add_trace(
    go.Scatter(x=df["x"], y=df["y2"], name='make this log scale'),
    secondary_y=True,
)
fig.update_layout( yaxis_type="log", secondary_y=True) #A command like this one
fig.show()

【问题讨论】:

  • secondary_y=True 发生错误,因此已将其删除并现在显示图表。左侧 y 轴为对数格式,右侧 y 轴为普通格式。现在的挑战是什么?
  • @r-beginners 我希望轴 2 成为日志

标签: python pandas plotly


【解决方案1】:

命名另一个 y 轴并为其设置“日志”。我用这个information 作为参考。

import pandas as pd

import plotly.express as px
from plotly.subplots import make_subplots
import plotly.graph_objects as go


df= pd.DataFrame({'x': [0,1,2,3,4], 'y1' : [2,4,6,8,10], 'y2': [5,10,20,30,35]})

fig = make_subplots(specs=[[{"secondary_y": True}]])

fig.add_trace(
    go.Scatter(x=df["x"], y=df["y1"], name='normal scale'),
    secondary_y=False
)


fig.add_trace(
    go.Scatter(x=df["x"], y=df["y2"], name='make this log scale', yaxis='y2'), # update
    secondary_y=True,
)
fig.update_layout(
                     yaxis2=dict(type='log')
                     ) # update
fig.show()

【讨论】:

  • 在你的例子中,两个比例都是对数,我只寻找 yaxis2 是对数(数字开始相距很远,随着你向上移动越来越近)
  • 如果你删除 yaxis_type="log" 就可以了,然后离开; fig.update_layout(yaxis2=dict(type='log'))
  • 这样,只有右边的Y轴是'log',左边的Y轴是正常的。在您的问题中,右侧是正常的,左侧不是'log'?
  • 问题不是y1线性和y2对数吗?如果yaxis1=dict(type='log'),那么y1是对数,y2是线性,下面是所有产品的列表,欢迎编辑。
  • 现在我明白你的意思了。数据只是随机的。我想要 y1 线性,y2 对数。我的前 2 个 cmets 是正确的。它适用于 fig.update_layout( yaxis2=dict(type='log') )。你还知道我如何将 y1,y2 的刻度设置为相同(类似于 make yticks1=yticks2 )
猜你喜欢
  • 2023-02-08
  • 1970-01-01
  • 2021-11-23
  • 2021-07-14
  • 1970-01-01
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
相关资源
最近更新 更多