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 轴不适合时间线的数量的主要内容,如果未能解决你的问题,请参考以下文章