3

在此处输入图像描述

该图应该显示时间差异,可以是负值也可以是正值。有些差异非常小,而有些差异非常大。

我可以缩放 x 轴,使分辨率在 x = 0 附近非常精细,而在远离 x = 0 的地方粗糙吗?是否可以有一个从 x = 0 向外的对数刻度?

编辑:

正如@Evert 所建议的,这为我解决了这个问题:

ax = gca()
...
ax.set_xscale("symlog")

并产生这个情节:

在此处输入图像描述

4

2 回答 2

7

您可以使用以下symlog设置xscale(): http: //matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.xscale

除了零附近的有限部分(可以使用更多关键字设置,请参阅文档)外,它以对数方式缩放(也在负侧):该部分是线性缩放的,从而避免了所有log(0)问题。

有关示例,请参见此处。

于 2013-02-19T14:54:23.427 回答
3

我会制作两个子图:在右侧子图中绘制正时间,并在左侧子图中绘制 abs(负时间),并反转 x-axis

是否可以有一个从 x = 0 向外的对数刻度?

不,因为对数图不显示零——当你接近 log-x 轴的“左端”时,你会在对数空间中达到负无穷大,所以你不能越过零到达真正的负值。你必须以某种方式消除零。

于 2013-02-19T14:18:17.330 回答