Разница в яркости огней не соответствует полному диапазону цветовой шкалы
Да, они соответствуют. Просто взгляните на более простую визуализацию ваших данных:
Участок 1: Участок распределения Seaborn
Код 1: Участок распределения Seaborn
import seaborn as sns
import numpy as np
sns.set(color_codes=True)
sns.distplot(tuple(brights))
Ваш участок выглядит так, как он выглядит по трем причинам:
- Есть много наблюдений вокруг
brightness = 330
- очень мало наблюдений за более яркими пожарами
- И наиболее важно, маркеры добавляются к графику в том порядке, в котором они появляются в вашем наборе данных.
Так что, если вы просто отсортируете данные, чтобы убедиться, что более яркие огни не охвачены менее яркими огнями, вы получите это:
* Сюжет 2: Сортировка brights
с использованием brights.sort()
Я думаю, что следует позаботиться об этом:
[...], чтобы маркеры имели более широкий цветовой диапазон и были лучше различимы?
* 10 62 * Так что на самом деле не нужно беспокоиться об этом:
Можно ли как-то изменить пределы шкалы цветов [...]
Вы могли бы рассмотрите также запись в журнал ваших данных. Я проверял это, но это не имело особого визуального различия. И обратите внимание, что я удалил часть 'size': [1/60* bright for bright in brights]
. Я думаю, что график 2 выглядел лучше, чем этот:
Полный код:
import csv
from plotly.graph_objs import Scattergeo, Layout
from plotly import offline
filename = 'C:\\pySO\\MODIS_C6_South_America_24h.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader)
print(header_row)
# Get latitudes, longitudes and brightness from this file.
lats, lons, brights = [], [], []
for row in reader:
lat = float(row[0])
lats.append(lat)
lon = float(row[1])
lons.append(lon)
bright = float(row[2])
brights.append(bright)
brights.sort()
# Map the fires
data = [{
'type': 'scattergeo',
'lon': lons,
'lat': lats,
'marker': {
#'size': [1/60* bright for bright in brights],
'color': brights,
#'color': brights.sort(),
'colorscale': 'Inferno',
'reversescale': True,
'colorbar': {'title': 'Brightness'},
},
}]
my_layout = Layout(title='South America Fires\npast 24 hours')
fig = {'data': data, 'layout': my_layout}
offline.plot(fig, filename='south_america_fires.html')