【发布时间】:2021-02-17 20:06:30
【问题描述】:
我想将一条线从 y 轴延伸到我的数据。但是,子图的原点不是 0,0。因此,当我为 hline 的 xmax 指定数据的 x 值时,我得到:
hln = ax.axhline(0.5,xmax=0.07,zorder=5,c='#cccccc')
当我用 xlim 偏移 hline 时,我接近了:
xlim = ax.get_xlim()
hln = ax.axhline(0.5,xmin=xlim[0],xmax=0.07+abs(xlim[0]),zorder=5,c='#cccccc')
但是,我有一堆子图和多行/子图,所以我想从我的数据源调用 xmax 的值。虽然我基本上可以使用上述方法到达那里,但 axhline 的文档建议可以调用 transform kwarg。这似乎是最简单的方法,但我似乎无法弄清楚实现。当我尝试时:
hln = ax.axhline(0.5,xmin=xlim[0],xmax=0.07+abs(xlim[0]),zorder=5,c='#cccccc',kwargs={'transform':ecdf_z_indiv})
我明白了:
AttributeError: 'Line2D' 对象没有属性 'kwargs'
在上述情况下,ecdf_z_indiv 是一个 statsmodels.distributions.empirical_distribution.ECDF 对象,尽管我也尝试了 x 值的数组。但是,这对于当前的错误似乎无关紧要。
干杯
【问题讨论】:
-
hlines 呢?你可以说
ax.hlines(0.5, xmin=xlim[0], xmax=0.07, transform=ax.transData)。这能解决你的问题吗? -
不完全,但谢谢你的建议
标签: python-3.x matplotlib line transform