如何在 Plotly Express 条形图上创建初始缩放? (绝对的)

How to create initial zoom on Plotly express bar chart? (categorical)

我在 plotly express 中有一个分类轴,它包含大约 100 个不同的类别。我想要做的是,当我创建它时,它只会在前 10 个类别上缩放,然后用户将能够使用 plotly 控件缩小。我该怎么做?

设置 x 范围,但将每个类别视为从 0 开始的整数。

import plotly.express as px

df = px.data.iris()
fig = px.bar(df,
    x = 'species',
    y = 'sepal_length',
    range_x = [-0.5, 1.5],
    barmode = 'overlay',
                    )

一个可能的解决方案是在 xaxis[=12= 上使用 rangesliderrange ]

已生成样本数据集,其中 x 是分类的,以证明这一点。

import plotly.express as px
import numpy as np
import pandas as pd

df = pd.DataFrame(
    {
        "category": [
            chr(r % 26 + 65) if r // 26 == 0 else chr(r // 26 + 64) + chr(r % 26 + 65)
            for r in range(100)
        ],
        "value": np.sin(np.linspace(-2 * np.pi, 2 * np.pi, 100)),
    }
)


px.bar(df, x="category", y="value").update_layout(
    xaxis_rangeslider_visible=True, xaxis_range=[0, 10]
)