【发布时间】:2020-08-11 02:55:59
【问题描述】:
我正在与熟悉 Cartopy 的人交谈......因为我使用 Cartopy 制作地图,但我不太了解它是如何工作的。
首先,我绘制了一张欧洲地图(广义上,从大西洋到乌拉尔),如图所示。
然后,我有一个单独的文件,比如dft0,为每个欧洲国家指明某种现象出现的时间(Time0),以相对于任意日期D 的天数计算,以及从min 到max 排序;以第一行为例:
Country Time0
20 Italy -16.063702
10 Denmark -2.798684
39 Sweden -2.711578
15 Germany 3.259436
所以,所谓的现象首先出现在意大利,16.1 daysbefore我的约会D,然后在丹麦,2.8 daysbeforeD ,然后在瑞典,2.7 daysbeforeD,然后在德国,3.3 daysafterD等,去白俄罗斯,在那里出现@ 987654339@ 之后 D。
52.1.
文件dft0中有44个这样的值(从负到正),从-16.1到52.1。
我的问题是:知道我做了一个合适的程序来绘制欧洲地图,我应该在程序中添加什么样的代码才能根据变量为国家着色Time0,例如从red(意大利)到violet(白俄罗斯),按照可见光谱的颜色,其中red = 800 nm和violet = 400 nm?
更准确地说,如果Time0 = x,我想用对应于(大约)y = -5.9 x + 705.6 nm 的颜色为相应的国家着色。
为了更容易理解,我插入了一个图表,显示如何计算颜色y(在nm);这是一个基本的线性插值。
我真的不知道它是否可以完成,因为它似乎很复杂(可能是不必要的复杂)。所以,我对任何其他想法持开放态度。目的是区分我在此文件dft0 中的44 国家/地区,使用有序的调色板,显示定期减少(或定期增长......)
感谢您的关心。
添加:我使用的Cartopy程序:
import matplotlib.pyplot as plt
import cartopy
import cartopy.io.shapereader as shpreader
plt.figure(figsize=(4, 4))
central_lon, central_lat = 0, 45
extent = [-10, 45, 35, 70]
ax = plt.axes(projection=cartopy.crs.Orthographic(central_lon, central_lat))
ax.set_extent(extent)
ax.gridlines()
ax.add_feature(cartopy.feature.BORDERS, linestyle=':', alpha=1)
ax.add_feature(cartopy.feature.OCEAN,facecolor=("lightblue"))
ax.add_feature(cartopy.feature.LAND)
ax.coastlines(resolution='10m')
plt.show()
【问题讨论】: