我想绘制一个带有两个y轴的图形,我希望左边的y轴显示一条线,根据该线对x轴进行排序,右边的y轴显示条形。我的问题是次y轴隐藏了第一个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轴上?
答案 0 :(得分:2)
我发现我可以切换辅助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()