Python绘制双Y轴折线图
sky落笔
编辑于 2024年09月26日 23:08
收录于文集
共2篇
Paper科研绘图

1.Question:

众所周知,Python和R绘制的图片都是十分精美的,很多顶级期刊的图片基本都可以用这两个语言绘制复现,本人虽然懂一点R语言,但是更喜欢用Python去绘图。近期刚好学习了如何绘制双Y折线图,其中有一个坑点:左右两个Y轴设置颜色会被覆盖掉,无法显示。特此记录原因。

2.Answer:

当我们在网上找资料,甚至问Chatgpt老师的时候,以为美滋滋地找到一份可以完美绘制双Y轴折线图的代码,结果一运行,傻眼了,虽然结果还不错,但是和我们心目中完美的样子相比还是有点瑕疵。

比如这是我修修改改第一遍后的代码:

这是演示数据。

这是绘制代码,我在绘制的时候分别设置左边的Y轴为红色,右边的Y轴为蓝色,这里明明设置左边的轴为红色了!!!

但是运行出来的结果却是这样:

咦?我左边轴的红色呢???

后来我一行一行的执行代码,总算是弄明白,原来python这里绘制双Y轴,是一个子图一个子图绘制的,ax1这个子图绘制完后,ax2这个子图是叠在ax1子图上的,所以ax1设置左边的Y轴为红色的时候,被ax2这个子图左边的黑色的轴覆盖掉了,也就是说它在这个黑色轴下面,所以我们需要将ax2这个子图的左侧轴给关闭,这样下面的红色轴就能显示。

解决代码:

这里我们ax2的左侧轴给关闭。

再运行得到的结果:

可以说是很perfect!

到此解决我们的问题,其实最好把ax1的右侧轴也给关闭,防止我们想设置ax2轴粗细的时候,设置的太细,下面的黑色轴就漏出来了。