如前所述 'marker='None' 需要被删除,然后指定带有顶点的矩形的适当方法类似于
verts = list(zip([-10.,10.,10.,-10],[-5.,-5.,5.,5]))
ax.scatter([0.5,1.0],[1.0,2.0], marker=(verts,0))
顶点被定义为([x1,x2,x3,x4],[y1,y2,y3,y4])
必须注意哪些得到减号等。
这 (verts,0) 在文档中被提及为
为了向后兼容,也接受形式 ( verts , 0),但它等同于仅verts用于提供定义形状的原始顶点集。
但是我发现使用只是verts
没有给出正确的形状。
要自动化该过程,您需要执行类似的操作
v_val=1.0
h_val=2.0
verts = list(zip([-h_val,h_val,h_val,-h_val],[-v_val,-v_val,v_val,v_val]))
基本示例:
import pylab as py
ax = py.subplot(111)
v_val=1.0
h_val=2.0
verts = list(zip([-h_val,h_val,h_val,-h_val],[-v_val,-v_val,v_val,v_val]))
ax.scatter([0.5,1.0],[1.0,2.0], marker=(verts,0))
*
编辑
单个标记
因此,您需要为每种情况手动创建一个顶点。这显然取决于您希望矩形如何点对点更改。这是一个例子
import pylab as py
ax = py.subplot(111)
def verts_function(x,y,r):
# Define the vertex's multiplying the x value by a ratio
x = x*r
y = y
return [(-x,-y),(x,-y),(x,y),(-x,y)]
n=5
for i in range(1,4):
ax.scatter(i,i, marker=(verts_function(i,i,0.3),0))
py.show()
所以在我的简单情况下,我绘制点 i,i 并在它们周围绘制矩形。指定垂直标记的方式是不直观的。在文档中描述如下:
verts
: 用于路径顶点的 (x, y) 对列表。标记的中心位于 (0,0) 并且尺寸被标准化,使得创建的路径被封装在单元格内。
因此,以下是等价的:
vert = [(-300.0, -1000), (300.0, -1000), (300.0, 1000), (-300.0, 1000)]
vert = [(-0.3, -1), (0.3, -1), (0.3, 1), (-0.3, 1)]
例如,它们将产生相同的标记。因此,我使用了一个比率,这是您需要投入工作的地方。r 的值(比率)将改变哪个轴保持不变。
这一切都变得非常复杂,我相信一定有更好的方法来做到这一点。