我正在使用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])
非常感谢任何建议!
答案 0 :(得分: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)
答案 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