use*_*817 5 python matplotlib z-order
我有一个带有许多标记的 matplotlib 散点图:
plt.scatter(x_position,y_position,c=z_position,s=90, cmap=cm.bwr,linewidth=1,edgecolor='k')
Run Code Online (Sandbox Code Playgroud)
有时标记重叠。我希望每个的 zorder 基于单个标记的 z_position。
这在散点图中是否可行,或者我是否必须为每个数据点使用单独的线和自己的 zorder 值?
谢谢你。
import numpy as np
import matplotlib.pyplot as plt
x = np.array([0,1,0,1])
y = np.array([0,0,1,1])
z = np.array([8,4,6,2])
Run Code Online (Sandbox Code Playgroud)
如果你现在打电话
plt.scatter(x, y, c=z, s=1000, marker="X",
cmap=plt.cm.bwr, linewidth=1, edgecolor='k')
Run Code Online (Sandbox Code Playgroud)
标记重叠:
数组中的最后一个标记最后绘制,因此 z=2 的标记在前面。
您可以按 z 对数组进行排序以更改出现顺序。
order = np.argsort(z)
plt.scatter(x[order], y[order], c=z[order], s=1000, marker="X",
cmap=plt.cm.bwr, linewidth=1, edgecolor='k')
Run Code Online (Sandbox Code Playgroud)