Я говорю с теми, кто хорошо знает Картопи ... потому что я использую Картопи для создания карты, но я не очень хорошо знаю, как она работает.
Сначала я создал карту Европы ( в самом широком смысле, от Атлантов c до Урала), как показано на прилагаемом рисунке.
Затем у меня есть отдельный файл, скажем 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 days
до моей даты D
, затем в Дании 2.8 days
до D
, затем в Швеции 2.7 days
до D
, затем в Германии 3.3 days
после D
и др. c., Отправляясь в Беларусь, где он появился 52.1 days
после 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
); это базовая c линейная интерполяция.
Я действительно не знаю, можно ли это сделать, так как это кажется сложным (может быть излишне сложным). Итак, я открыт для любой другой идеи. Цель состоит в том, чтобы дифференцировать 44
стран, которые у меня есть в этом файле dft0
, с упорядоченной палитрой цветов, показывающей регулярное уменьшение (или регулярный рост ...)
Спасибо за вашу заботу .
Добавлено : использованная мной программа 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()