У меня есть список словарей, содержащих неупорядоченные точки данных:
print(data)
[{'ID': 1, 'Longitude': 18.6081, 'Latitude': 50.0977, 'Cost': -1.0},
{'ID': 2, 'Longitude': 18.6091, 'Latitude': 50.197700000000005, 'Cost': 4},
{'ID': 3, 'Longitude': 18.6081, 'Latitude': 50.297700000000006,'Cost':4},....]
Я хочу отобразить значение функции 'cost' как countorf, используя matplotlib.
До сих пор я тестировал следующий код:
lat = []
lon = []
cost = []
for dataPoint in data:
if dataPoint["Cost"] == -1:
continue
lon.append(dataPoint["Longitude"])
lat.append(dataPoint["Latitude"])
cost.append(dataPoint["Cost"])
xi = np.linspace(min(lon), max(lon))
yi = np.linspace(min(lat), max(lat))
zi = griddata(lon, lat, cost, xi, yi, interp='linear')
#make a plot
plt.contourf(xi, yi, zi, 100)
plt.colorbar()
plt.show()
Вышеупомянутый код работает, но он интерполирует значения между точками данных, и все, что я хочу сделать, это построить все точки из массива данных на плоскости с цветным ядром, соответствующим его стоимости. Как я могу это сделать?