簡體   English   中英

如何在 plotly 圖的網格中設置行/列的屬性?

[英]How to set properties on a row/column in a grid of plotly plots?

假設我使用 plotly 在每行繪制 2 個圖表,共 10 行:

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

N=10
fig = make_subplots(rows=N, cols=2)

fig.add_trace(
    go.Scatter(x=x, y=y),
    row=1, col=1
)

fig.add_trace(
    go.Candlestick(
        x=df_kline.index,
        open=df_kline['O'],
        high=df_kline['H'],
        low=df_kline['L'],
        close=df_kline['C']
    ),
    row=1, col=2
)

:
fig.show()

如何為每一行設置一個yaxis_title

如何將整個第一列的 y 軸范圍設置為 [1,10],並且僅在 plot 底部顯示刻度標簽?

我希望這可以作為一個問題而不是兩個問題,因為它處理的是逐行/逐列分組。

由於沒有提供數據,我使用特定股票價格用四個子圖來應對挑戰; 可以在 y 軸設置中設置第一行中每一行的 y 軸的標題和范圍。 此外,在子圖的設置部分,如果將共享軸設置為 x 軸,則只有底部的 x 軸可用。

from plotly.subplots import make_subplots
import plotly.graph_objects as go
import numpy as np
import pandas as pd

x = np.linspace(0,1, 100)
y = np.cumsum(x)

import yfinance as yf
df_kline = yf.download("AAPL", start="2021-01-01", end="2021-03-01")
df_kline.rename(columns={'Open':'O','High':'H','Low':'L','Close':'C'}, inplace=True)

N=2
fig = make_subplots(rows=N, cols=2, 
                    shared_xaxes=True,    )# vertical_spacing=0.1

fig.add_trace(
    go.Scatter(x=x, y=y),
    row=1, col=1
)

fig.add_trace(
    go.Candlestick(
        x=df_kline.index,
        open=df_kline['O'],
        high=df_kline['H'],
        low=df_kline['L'],
        close=df_kline['C'],

    ),
    row=1, col=2,
)

fig.add_trace(
    go.Scatter(x=x, y=y),
    row=2, col=1
)

fig.add_trace(
    go.Candlestick(
        x=df_kline.index,
        open=df_kline['O'],
        high=df_kline['H'],
        low=df_kline['L'],
        close=df_kline['C'],
    ),
    row=2, col=2
)

fig.update_layout(autosize=False, height=600, width=1000, showlegend=False)

# rangeslider visible false
fig.update_layout(title='Custome subplots',
                  xaxis2=dict(rangeslider=dict(visible=False)),
                  xaxis4=dict(rangeslider=dict(visible=False)))
# yxais customize
fig.update_layout(yaxis1=dict(range=[0,10], title='test'),
                 yaxis3=dict(range=[0,10], title='test2'))
fig.show()

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM