改变matplotlib中散乱点的大小

时间:2016-06-30 17:54:29

标签: python matplotlib plot cartopy

我正在使用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 个答案:

答案 0 :(得分:2)

scatterset_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

答案 1 :(得分:0)

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

这些是plt.scatter采用的参数, private bool _isAdded; private void Button_Click(object sender, RoutedEventArgs e) { if (!_isAdded) { var button = new AppBarButton(); button.Icon = new SymbolIcon(Symbol.Find); bottomCommandBar.PrimaryCommands.Add(button); } else { bottomCommandBar.PrimaryCommands.RemoveAt(bottomCommandBar.PrimaryCommands.Count - 1); } _isAdded = !_isAdded; } 参数是散点的大小,所以将s更改为您喜欢的任何内容,类似

s