我正在从这里关注本教程:
https://matplotlib.org/gallery/ticks_and_spines/multiple_yaxis_with_spines.html
但是,使用的示例仅用于单个绘图,而我目前正在处理子图。
我的版本如下:
p1 = tr[names['equity']].plot(ax=ax3, linewidth = 0.75)
axb = ax3.twinx()
axb.spines["right"].set_position(("axes", 0.5))
p2 = tr[names[local_rating]].plot(ax=axb, c= 'r', linewidth = 0.75)
axb.grid(False)
axb.margins(x=0)
axc = ax3.twinx()
p3 = tr[names['vol']].plot(ax=axc, c = 'g', linewidth = 0.75)
axc.grid(False)
axc.margins(x=0)
ax3.yaxis.label.set_color(p1.get_color())
axb.yaxis.label.set_color(p2.get_color())
axc.yaxis.label.set_color(p3.get_color())
当我尝试执行pX.get_color()时,我得到:
AttributeError:“ AxesSubplot”对象没有属性“ get_color”
我的问题是:我应该使用哪种方法恢复子图的颜色?
我知道我可以手动设置颜色使其匹配,因为这只是少数说明,但是我只是想知道是否还有另一种方法。
谢谢
答案 0 :(得分:2)
这与子图无关。如示例所示,您使用的是熊猫绘图功能,而不是matplotlib plot
函数。
轴确实没有颜色。如果您对轴内线条的颜色感兴趣,可以使用例如
ax.get_lines()[0].get_color()
获取ax
轴上第一行的颜色。