3

我正在使用 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])

任何建议将不胜感激!

4

2 回答 2

2

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)

在此处输入图像描述 在此处输入图像描述

于 2016-06-30T19:24:10.440 回答
0

http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.scatter

这些是 plt.scatter 采用的参数,s参数是散点的大小,因此可以更改s为您喜欢的任何内容,如下所示

plt.scatter(longs, lats, color = str(platformColors[platform]), zorder = 2, s = 20, marker = 'o')
于 2016-06-30T17:58:21.467 回答