matplotlib中设置y轴系数的颜色

Set the color of y axis coefficient in matplotlib

这是我的 Python 代码:

import matplotlib.pyplot as plt
import numpy as np

# create data
data = np.random.randn(200, 2)
data = data * 1e20
assert(data.ndim == 2)
assert(data.shape[1] == 2)
x = np.arange(data.shape[0])
fix, ax1 = plt.subplots()
ax1.plot(x, data[:, 0], 'b')
for i in ax1.get_yticklabels():
    i.set_color('b')
ax1.set_ylabel('', color='b')
ax2 = ax1.twinx()
ax2.plot(x, data[:, 1], 'r')
for i in ax2.get_yticklabels():
    i.set_color('r')
plt.show()

我正在尝试在一个图上绘制共享同一 x 轴的两条曲线。我还想为两个 y 轴设置不同的颜色。我得到结果:

问题是,在左边的 y 轴上,顶部有一个系数“1e20”。我也希望它是蓝色的。我怎样才能做到这一点?

在 matplotlib 中,系数被称为与其关联的轴的 "offset text"。因此,您可以通过在适当的轴对象上调用 get_offset_text() 方法来访问它。然后,您可以使用各种格式化方法。在这种情况下,您需要在每个 y 轴上调用 set_color() 方法。您可以通过在调用 plt.show():

之前立即添加以下两行代码来完成此操作
ax1.yaxis.get_offset_text().set_color("blue")
ax2.yaxis.get_offset_text().set_color("red")