Plotly - 如何排除y轴的一部分或重置零轴?

0 投票
1 回答
34 浏览
提问于 2025-04-14 18:35

我有一个示例图表,显示了一些读数和时间的关系。y轴的值总是在(-∞, -100]到[100, ∞)这个范围内。换句话说,零点在100(或者-100,这两个都可以看作是一样的),所以我想把这个部分从图表中去掉。

我尝试使用update_yaxes方法,并设置rangebreaks参数,像这样: fig.update_yaxes(rangebreaks=[dict(bounds=[-100, 100])]),但是没有任何效果。

有没有其他的方法可以使用?我基本上想去掉-100和100之间的这个大空白,因为它们实际上是同一个值。

示例图片

1 个回答

0

在这个文档中,提到“范围断裂(rangebreaks)只适用于‘日期’类型的坐标轴”。你可以在这里查看:https://plotly.com/python/reference/layout/yaxis/

一种方法是重新调整你的数据,以消除空隙。比如说,可以对负值加100,对正值减100。这样做后,再设置一下ticklabels,确保Y轴的标签还是正确的。

另一种方法(虽然有点不确定,但可能会让你看到明显的断裂模式)是把你的Y值转换成日期。比如,先把它们转换成正整数,然后再用fromordinal()进行转换。接着使用rangebreaks,最后再用ticklabels来确保坐标轴的标签是正确的。

撰写回答