Y 轴不适合时间线的数量

Posted

技术标签:

【中文标题】Y 轴不适合时间线的数量【英文标题】:Y-axis doesn't fit the number of timelines 【发布时间】:2022-01-12 17:56:05 【问题描述】:

我有一个用px.timeline 制作的带有大量输入数据的图,我看到 Y 轴上的行数与条形数不同。似乎 plotly 没有缩放 Y 轴以适应多个时间条,但我没有找到任何参数来更改它。

这是一个外观示例:

但是,如果我将放大到具有较少条形的较小区域,则 Y 轴开始适合:

有什么方法可以让情节有点“可滚动”或重新计算字体大小以将 Y 轴与多个时间线对齐? 谢谢。

【问题讨论】:

【参考方案1】: 从图像看来,yaxis 是分类的。有要复制的模拟数据 您可以通过范围有效控制yaxis。建立了一个下拉菜单,允许用户选择 yaxis 的部分
import plotly.express as px
import pandas as pd

df = pd.DataFrame("Task": [f"a_b" for a in range(8) for b in range(15)]).assign(
    Start=lambda d: pd.Series(pd.date_range("1-jan-2010", periods=len(d) * 10))
    .sample(len(d))
    .values,
    Finish=lambda d: d["Start"] + pd.Timedelta(days=25),
)

fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task")

BARS = 15
fig.update_layout(
    updatemenus=[
        
            "buttons": [
                
                    "label": f"fig.data[0].y[s] to fig.data[0].y[min(s+BARS, len(fig.data[0].y)-1)]",
                    "method": "relayout",
                    "args": ["yaxis": "range": [s, s + BARS]],
                
                for s in range(0, len(fig.data[0].y), BARS)
            ],
            "active": -1,
        
    ]
)

【讨论】:

您好,Rob,感谢您的回答。这不完全是我想要的,因为我仍然有一个图,其中 Y 轴与条不匹配,但我看到你的代码 sn-p 可以通过从更新菜单中放大到选定的行来帮助我一点。还有一点需要注意的是,我没有完全分类的 Y 轴,因为颜色是由我的 DataFrame 的另一列组成的。

以上是关于Y 轴不适合时间线的数量的主要内容,如果未能解决你的问题,请参考以下文章

直通车关键字竞争透视

直通车关键字竞争透视

echarts怎么设置y轴间距

计算图像中白色背景上蓝调线的数量

Seaborn/Plotly 多个 y 轴

这次词语太专业了。求英文翻译。。。