【发布时间】:2021-07-25 09:52:37
【问题描述】:
我有一个财务图表,其中有一堆指标作为子图。与子图一起的主图可以显示多个时间序列。我想在每个子图中显示在该子图上绘制的任何系列的最后一个值,在左上角,类似于:
令人惊讶的是,事实证明这是相当困难的。虽然我可以找到在点/条上显示注释的文档,并且我可以在图的最左上角显示注释/文本,但似乎没有一种简单或直观的方法来简单地显示一些文本不绑定到 x 或 y 轴……在我的例子中,在左上角。
我所做的基本上是使用标题并尝试将其移动到每个子图的左上角。基本上,我首先为图表中的每个子图创建一个虚拟标题。然后稍后在 foreach 循环中迭代我的窗格对象列表时,这些对象基本上是元数据来告诉我如何绘制子图,当时我设置了标题的实际值并尝试重新定位到左侧:
row_heights, titles = zip(*[[x.rel_height, 'title'] for x in panes if x.rel_height is not None])
self.fig = make_subplots(rows=len(self.panes), cols=1, shared_xaxes=True,
vertical_spacing=0.01, row_heights=row_heights, subplot_titles=titles)
for i, p in enumerate(self.panes):
...
self.fig.layout.annotations[i].update(text = p.info, x=0.025)
*#self.fig.layout.annotations[i].update(text = p.info, x=0.025, y=1.0)*
...
上面的行会将标题很好地向左移动。但问题是,如果我尝试添加一个 y 值,则该 y 值基于整个图形,而不是相对于子图..所以所有文本都在一个位置结束。另一件事是,我不知道每个子图的实际高度以知道“顶部”可能是什么。
我们将不胜感激尝试解决此问题的任何帮助
【问题讨论】:
-
您能否提供一个完整的可重现示例?