将第二个y轴与左侧的y轴对齐?

时间:2019-02-12 11:32:08

标签: python matplotlib plot yaxis

我引入了一个双y轴来绘制累积量,但是0不在图像底部开始,或者至少与左y轴的高度相同。

如何将右侧的0点与左侧的y对齐?

def upload(self, cloud_path, local_path):
        print("Inside upload of storage module.")
        print("Uploading the {} as {}".format(
            local_path,
            cloud_path
        ))
        with open(local_path, 'rb') as iterator:
            self.driver.upload_object_via_stream(
                iterator=iterator,
                container=self.container,
                object_name=cloud_path,
            )

img

不幸的是,它与fig, ax = plt.subplots(1,1, figsize=(15,1.5*2.5)) ax.hist(np.arange(100), np.arange(100)) axt = ax.twinx() axt.plot(np.arange(100), np.arange(100), ls=':', c='r') 一起更改了刻度分辨率。

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用命令

将两个y轴设置为具有相等的限制。
axt.set_ylim(ax.get_ylim())

之后,您已经执行了所有绘图命令。同样,如果您只希望较低的值(0)重合,则可以

axt.set_ylim([ax.get_ylim()[0],axt.get_ylim()[1]])

之所以起作用,是因为ax.get_ylim()返回一个元组,其中第一个条目是显示轴范围的下限,第二个值是显示的轴范围的上限。 set_ylim()依次需要两个元素的可迭代对象(例如列表或元组),您可以随时对其进行构造。

编辑

正如tmdavison在评论中指出的那样,一个限制也可以仅将一个限制传递给set_xlim(),从而使另一个限制保持不变(有关详细信息,请参见documentation)。这是通过关键字bottomtop完成的。对于OP中的示例,仅将双轴下限设置为0的方式,相应的命令将是

axt.set_ylim(bottom=ax.get_ylim()[0])