我正在尝试使用底图在背景上绘制散点图。但它掩盖了背景。我如何保留背景?
我正在使用这个代码
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
m = Basemap(projection='merc',llcrnrlat=-80,urcrnrlat=80,llcrnrlon=-180,urcrnrlon=180,lat_ts=20,resolution='c')
m.bluemarble()
x, y = m(list(longitude), list(latitude))
plt.scatter(x,y,1,marker='o',color='Red')
plt.show()
但一旦我运行散点图,它会覆盖背景图像。如何在图像上叠加散点图。
3条答案
按热度按时间bwleehnv1#
这是如何在光栅Map上绘制一系列点的方法。请注意,bluemarble图像非常大,因此应避免绘制全比例(1.0或默认值)。代码是基于你的。
结果图:
xghobddn2#
我知道这是一个老问题,但万一有人来这里和我一样的问题。
诀窍是为散点图给予比
.bluemarble()
更高的z阶数。更多信息:https://matplotlib.org/3.1.0/gallery/misc/zorder_demo.html
6tr1vspr3#
我不太明白你说的“覆盖背景”是什么意思。使用
plt.scatter()
时,它会在Map上绘制点,因此它会在背景上显示点。只是根据提供的代码,我认为你在这里的问题是
m(list(longitude), list(latitude))
。如果列表中有多个点,则需要在它们上循环。
如果只有一分,
点的样式可以在matplotlib documentation中找到。