子图axis.set_zorder,情节消失
Subplot axis.set_zorder, plots dissapear
我正在用 twinx
绘制 X 图,我想设置这些轴的 zorder
:
import matplotlib.pyplot as plt
import numpy as np
from pandas import plotting
x1 = np.linspace(1,20,10)
y1 = np.random.random_integers(1,20,10)
y2 = np.random.random_integers(1,20,10)
y3 = np.random.random_integers(1,20,10)
fig,ax = plt.subplots()
bx = ax.twinx()
cx = ax.twinx()
colors = getattr(getattr(plotting, '_style'), '_get_standard_colors')
(num_colors=5)
ax.plot(x1,y1, label = "1",color= colors[0])
bx.plot(x1,y2, label = "2",color= colors[1])
cx.plot(x1,y3, label = "3",color= colors[2])
cx.spines["right"].set_position(("axes", 1.1))
li,la = ax.get_legend_handles_labels()
li2,la2 = bx.get_legend_handles_labels()
li3,la3 = cx.get_legend_handles_labels()
lines= li+li2+li3
labels = la+la2+la3
ax.legend(lines, labels, loc=9, ncol=2, bbox_to_anchor=(0.5, 1.1))
ax.set_zorder(9)
bx.set_zorder(7)
cx.set_zorder(5)
plt.show()
bx
和 cx
的绘图在设置 set_zorder
后消失。没有zorder
,一切都很好。
感谢您的帮助:)
您需要使 zorder 较高的轴的背景透明,否则您看不到较低的图。
ax.set_facecolor("none")
bx.set_facecolor("none")
您还可以将最低轴的面色设置为白色(但这不是绝对必要的),
cx.set_facecolor("white")
我正在用 twinx
绘制 X 图,我想设置这些轴的 zorder
:
import matplotlib.pyplot as plt
import numpy as np
from pandas import plotting
x1 = np.linspace(1,20,10)
y1 = np.random.random_integers(1,20,10)
y2 = np.random.random_integers(1,20,10)
y3 = np.random.random_integers(1,20,10)
fig,ax = plt.subplots()
bx = ax.twinx()
cx = ax.twinx()
colors = getattr(getattr(plotting, '_style'), '_get_standard_colors')
(num_colors=5)
ax.plot(x1,y1, label = "1",color= colors[0])
bx.plot(x1,y2, label = "2",color= colors[1])
cx.plot(x1,y3, label = "3",color= colors[2])
cx.spines["right"].set_position(("axes", 1.1))
li,la = ax.get_legend_handles_labels()
li2,la2 = bx.get_legend_handles_labels()
li3,la3 = cx.get_legend_handles_labels()
lines= li+li2+li3
labels = la+la2+la3
ax.legend(lines, labels, loc=9, ncol=2, bbox_to_anchor=(0.5, 1.1))
ax.set_zorder(9)
bx.set_zorder(7)
cx.set_zorder(5)
plt.show()
bx
和 cx
的绘图在设置 set_zorder
后消失。没有zorder
,一切都很好。
感谢您的帮助:)
您需要使 zorder 较高的轴的背景透明,否则您看不到较低的图。
ax.set_facecolor("none")
bx.set_facecolor("none")
您还可以将最低轴的面色设置为白色(但这不是绝对必要的),
cx.set_facecolor("white")