情节排序/分层julia pyplot

时间:2018-01-05 02:53:19

标签: matplotlib julia scatter

我有一个绘制线(x,y)和特定点(xx,yy)的子图。我想要高亮(xx,yy),所以我用scatter绘制了它。但是,即使我在原始绘图之后订购它,新点仍会显示在原始行后面。我怎样才能解决这个问题? MWE如下。

x = 1:10
y = 1:10
xx = 5
yy = 5
fig, ax = subplots()
ax[:plot](x,y)
ax[:scatter](xx,yy, color="red", label="h_star", s=100)
legend()
xlabel("x")
ylabel("y")
title("test")
grid("on")

1 个答案:

答案 0 :(得分:2)

您可以使用参数zorder更改哪些图表在彼此的顶部显示。显示的here的matplotlib示例给出了简要说明:

  

轴的默认绘制顺序是补丁,线条,文本。这个   订单由zorder属性决定。以下默认值   已设置

Artist                      Z-order

Patch / PatchCollection      1

Line2D / LineCollection      2

Text                         3
     

您可以通过设置zorder来更改单个艺术家的顺序。   任何单独的plot()调用都可以设置zorder的值   特别项目。

基于问题代码的完整示例,使用 python 如下所示:

import matplotlib.pyplot as plt

x = range(1,10)
y = range(1,10)
xx = 5
yy = 5
fig, ax = plt.subplots()
ax.plot(x,y)

# could set zorder very high, say 10, to "make sure" it will be on the top
ax.scatter(xx,yy, color="red", label="h_star", s=100, zorder=3)

plt.legend()
plt.xlabel("x")
plt.ylabel("y")
plt.title("test")
plt.grid("on")

plt.show()

给出了:

enter image description here