提问者:小点点

在matplotlib中将y轴标签添加到次y轴


我可以使用plt将y标签添加到左y轴。ylabel,但如何将其添加到次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('$')

共3个答案

匿名用户

最好的方法是直接与对象交互

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()

匿名用户

有一个简单的解决方案,它不需要修改matplotlib:只需要熊猫。

调整原始示例:

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也被传递)。plot返回用于设置标签的不同轴。

我知道这个问题很久以前就得到了回答,但我认为这种方法是值得的。

匿名用户

我现在无法访问Python,但我想:

fig = plt.figure()

axes1 = fig.add_subplot(111)
# set props for left y-axis here

axes2 = axes1.twinx()   # mirror them
axes2.set_ylabel(...)