У меня возникла проблема с получением моих данных на карте с помощью Basemap и изменения этих точек в цвете. Я читал много разных вещей в Интернете о том, как это сделать, но я все равно получаю карту без очков. Вот мой код:Изменение цвета точки на matplolib и базовая карта не работает
import pandas as pd
import numpy as np
import pickle
from IPython.display import SVG, display_svg
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import matplotlib.colors as co
d3data = pickle.load(open("9_28_2015to10_04_2015.pickle", "rb"))
lons = d3data['longitude'].tolist()
lats = d3data['latitude'].tolist()
normcts = co.Normalize(d3data['GrossCounts'])
plt.figure(figsize=(20,10))
m = Basemap(projection='cass', lat_0 = 40.108004, lon_0 = -88.228878,
resolution = 'h', area_thresh = 0.1,
llcrnrlon=-88.238399, llcrnrlat=40.097942,
urcrnrlon=-88.219345, urcrnrlat=40.116158)
m.drawcountries()
m.fillcontinents(color='white')
m.drawmapboundary()
m.readshapefile('mhj_shapes/lines', 'lines')
cmap = plt.cm.RdYlBu_r
norm = co.Normalize(vmin=d3data['GrossCounts'].min(),
vmax=d3data['GrossCounts'].max())
pointcolors = plt.cm.ScalarMappable(norm, cmap)
for i in range(0, len(d3data)):
col = pointcolors.to_rgba(d3data['GrossCounts'][i])
x,y = m(d3data['longitude'][i],d3data['latitude'][i])
m.scatter(x, y, marker = 'o', s=10, color=col, cmap=cmap)
plt.show()
Моя проблема заключается в том, что мой файл форма генерирует карту просто отлично, но я не получаю никаких очков на нем. Я хочу построить столбцы dataframe d3data['GrossCounts']
поверх карты и иметь цветовую шкалу с (целочисленным) значением d3data['GrossCounts']
.
Любые предложения были бы высоко оценены!
Интересно. Я подключил ваш код и до сих пор не вижу никаких моментов в своем заговоре. [link] (https://www.flickr.com/photos/[email protected]/shares/4896Z1). Я вижу, что переменные (например, col) заполняются правильно. Это что-то в заговоре, что я должен поступать неправильно. –
Я предполагаю, что вы уже проверили, но что такое min/max d3data ['longitude'] и d3data ['latitude']? –
Я проверил и подтвердил, что они находятся в ограничивающей рамке, установленной на карте. –