Не знаете, как использовать цветовую карту с маркером Folium - PullRequest
1 голос
/ 03 июля 2019

У меня есть данные с широтой, долготой и процентом мощности.Я хочу сделать что-то очень простое, но не знаю, как: применить цветовую карту, чтобы раскрасить точки данных на основе их процента.Таким образом, 90% - это красный, а 100% - синий.Я создал успешную карту и цветовую карту, но не уверен, что делать дальше.

import folium
import pandas as pd
import folium.plugins

import branca
import branca.colormap as cm

data = [
    [33.823400, -118.12194, 99.23],
    [33.823500, -118.12294, 95.23],
    [33.823600, -118.12394, 91.23],
    [33.823700, -118.12494, 90.00]
]

df = pd.DataFrame(data, columns=['latitude','longitude','power'])

x_start = (df['latitude'].max() + df['latitude'].min()) / 2
y_start = (df['longitude'].max() + df['longitude'].min()) / 2
start_coord = (x_start, y_start)

map = folium.Map(location=start_coord, zoom_start=12)

lat = list(df.latitude)
lon = list(df.longitude)

for loc in zip(lat, lon):
    folium.Circle(
        location=loc,
        radius=10,
        #fill=True,
        #color='blue',
        #fill_opacity=0.7
    ).add_to(map)

display(map)

colormap = cm.LinearColormap(colors=['red','lightblue'], index=[90,100],vmin=90,vmax=100)
colormap

1 Ответ

0 голосов
/ 04 июля 2019

Я спешу, но так я делал в прошлом.Создайте CM, а затем назовите его так: colormap(.9)

import folium
import pandas as pd
import folium.plugins

import branca
import branca.colormap as cm

data = [
    [33.823400, -118.12194, 99.23],
    [33.823500, -118.12294, 95.23],
    [33.823600, -118.12394, 91.23],
    [33.823700, -118.12494, 90.00]
]

df = pd.DataFrame(data, columns=['latitude','longitude','power'])

x_start = (df['latitude'].max() + df['latitude'].min()) / 2
y_start = (df['longitude'].max() + df['longitude'].min()) / 2
start_coord = (x_start, y_start)


colormap = cm.LinearColormap(colors=['red','lightblue'], index=[90,100],vmin=90,vmax=100)

map = folium.Map(location=start_coord, zoom_start=12)


lat = list(df.latitude)
lon = list(df.longitude)
pow = list(df.power)


for loc, p in zip(zip(lat, lon), pow):
    folium.Circle(
        location=loc,
        radius=10,
        fill=True,
        color=colormap(p),
        #fill_opacity=0.7
    ).add_to(map)

display(map)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...