在matplotlib中为y轴添加一个y轴标签
我可以使用plt.ylabel
添加ay标签到左侧的y轴,但我怎样才能把它添加到次要的y轴?
table = sql.read_frame(query,connection) table[0].plot(color=colors[0],ylim=(0,100)) table[1].plot(secondary_y=True,color=colors[1]) plt.ylabel('$')
最好的方法是直接与axes
对象交互
import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 10, 0.1) y1 = 0.05 * x**2 y2 = -1 *y1 fig, ax1 = plt.subplots() ax2 = ax1.twinx() ax1.plot(x, y1, 'g-') ax2.plot(x, y2, 'b-') ax1.set_xlabel('X data') ax1.set_ylabel('Y1 data', color='g') ax2.set_ylabel('Y2 data', color='b') plt.show()
我现在还没有访问Python,但是离开了我的头顶:
fig = plt.figure() axes1 = fig.add_subplot(111) # set props for left y-axis here axes2 = axes1.twinx() # mirror them axes2.set_ylabel(...)
有一个简单的解决scheme,而不会搞乱matplotlib:只是pandas。
调整原来的例子:
table = sql.read_frame(query,connection) ax = table[0].plot(color=colors[0],ylim=(0,100)) ax2 = table[1].plot(secondary_y=True,color=colors[1], ax=ax) ax.set_ylabel('Left axes label') ax2.set_ylabel('Right axes label')
基本上,当给出secondary_y=True
选项时(即使传递ax=ax
也是如此), pandas.plot
返回我们用来设置标签的不同坐标轴。
我知道这是很久以前的答案,但我认为这种做法是值得的。