Saya memiliki kumpulan data x,y1,y2. Menggunakan Plotly, saya ingin:

  • Plot y1 pada sumbu 1: linier
  • Plot y2 pada sumbu2: log

Saya membayangkan itu akan terlihat seperti ini:

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

Ini adalah pengaturan saya sejauh ini

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()
0
David 8 9 Juli 2020, 15:32

1 menjawab

Jawaban Terbaik

Beri nama sumbu y lainnya dan buat 'log' untuknya. Saya menggunakan informasi ini sebagai referensi.

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

enter image description here

0
David 8 10 Juli 2020, 05:12