在matplotlib中设置y轴系数的颜色

时间:2015-04-26 03:58:19

标签: python matplotlib plot

这是我的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轴有不同的颜色。我得到了结果:

plot

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

1 个答案:

答案 0 :(得分:2)

在matplotlib中,系数被称为"偏移文本"对于与之关联的轴。因此,您可以通过在相应的轴对象上调用get_offset_text()方法来访问它。然后,您可以使用各种格式化方法。在这种情况下,您需要在每个y轴上调用set_color()方法。您可以在调用plt.show()之前立即添加以下两行代码来完成此任务:

ax1.yaxis.get_offset_text().set_color("blue")
ax2.yaxis.get_offset_text().set_color("red")