在matplotlib中更改散点图点的大小

4
我正在使用cartopy和matplotlib进行一些绘图,我使用相同的点集生成几个不同域大小的图像。随着域大小的增加,每个绘制点的大小保持不变,因此随着缩放,事物变得紧密、重叠且杂乱无章。我想改变点的大小,我知道可以通过重新绘制它们来实现,但我想知道是否有一种方法可以在不再次执行该过程的情况下更改它们的大小。
这是我用于绘制点的行:
plt.scatter(longs, lats, color = str(platformColors[platform]), zorder = 2, s = 8, marker = 'o')

这是我用来改变域大小的代码行:

ax.set_extent([lon-offset, lon+offset, lat-offset, lat+offset])

任何建议都将不胜感激!
2个回答

3

scatter有一个set_sizes选项,您可以使用它来设置新的大小。例如:

import matplotlib.pylab as pl
import numpy as np

x = np.random.random(10)
y = np.random.random(10)
s = np.random.random(10)*100

pl.figure()
l=pl.scatter(x,y,s=s)

s = np.random.random(10)*100
l.set_sizes(s)

看起来 set_sizes 只接受数组,所以如果要设置一个固定的标记大小,可以这样做:

l.set_sizes(np.ones(x.size)*100)

或者对于相对变化,可以这样:

l.set_sizes(l.get_sizes()*2)

enter image description here enter image description here


0

我知道s参数,但那是在调用最初绘制点的scatter函数时使用的。我想要改变已经使用scatter函数绘制的点的大小。 - Jabberwock Stomp
好的,抱歉是我的错误。所以您需要动态更新散点,这将涉及重绘它们。请查看此帖子以获取更多见解:https://dev59.com/nGgu5IYBdhLWcg3w9ruX - Ali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接