Python Plotly: сделать логарифмическую шкалу вторичной оси - PullRequest
0 голосов
/ 09 июля 2020

У меня есть набор данных x, y1, y2. Используя Plotly, я хочу:

  • Построить график y1 на оси 1: линейный
  • Построить график y2 на оси2: 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()

1 Ответ

0 голосов
/ 10 июля 2020

Назовите другую ось Y и настройте для нее журнал. Я использовал эту информацию как ссылку.

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()

введите описание изображения здесь

...