在Matplotlib中双y坐标轴上绘制条纹前面的线

我想用两个y坐标轴绘制一个图形,并且我想要左y轴显示一条线,根据该坐标轴对x轴进行排序,右边y轴显示条。我的问题是第二个y轴隐藏了第一个y轴,如附图所示。我使用的代码如下:在Matplotlib中双y坐标轴上绘制条纹前面的线

import matplotlib

import matplotlib.pyplot as plt

from matplotlib.ticker import ScalarFormatter

fig, ax1 = plt.subplots()

ax2 = ax1.twinx()

p1 = ax1.plot(ind, total_facilities, '--bo')

width = 1

p2 = ax2.bar(ind, pdb_facilities, width, color='gray',edgecolor = "none")

plt.xlim([-1,len(total_facilities)])

ax1.set_yscale('symlog')

当我重新安排轴线所以我绘制在二级轴行云的灰色条前面的蓝色线,但随后这是令人困惑,因为我想在x轴将根据主要y轴的值进行排序。有什么方法可以将蓝线保持在主y轴?

回答:

我发现我可以切换辅助y轴的地方,所以辅助y轴绘制在左侧和右侧的初级:

ax2 = ax1.twinx() 

p1 = ax2.plot(ind, total_facilities, '--bo')

p2 = ax1.bar(ind, pdb_facilities, width, color='gray',edgecolor = "none")

plt.xlim([-1,len(total_facilities)])

ax2.set_yscale('symlog')

ax1.yaxis.tick_right()

ax2.yaxis.tick_left()

plt.show()

以上是 在Matplotlib中双y坐标轴上绘制条纹前面的线 的全部内容, 来源链接: utcz.com/qa/257395.html

回到顶部