Folium.Choropleth: eigene colormap für fill_color

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Hi,

ich habe mittels folium eine map erstellt und plote die geodaten für jedes Gebiet. Ich habe 10 verschiedene Gebiete und ich möchte, dass jedes Gebiet in einer anderen Farbe dargestellt wird.

Wenn ich vordefinierte fill_color = 'YlGn' nutze, dann setzt er die thresholds automatisch und zwar nicht nach jeder Zahl, sondern erst nach zwei Zahlen. Also Gebiet 1 und 2 haben die selbe Farbe, was natürlich überhaupt nicht gewollt ist.

Code: Alles auswählen

    
    folium.Choropleth(
        geo_data=GeoP_df,
        name='Gebiet',
        data=GeoP_df,
        columns=['ID', 'gebiet'],
        key_on='feature.properties.ID',
        fill_color='YlGn',
        fill_opacity=0.7,
        line_opacity=0.1,
        legend_name='Gebiete'
    ).add_to(m)
Jetzt versuche ich meine eigene colormap zu erzeugen, was aber gar nicht so einfach ist.

Es gibt da die library: branca

Hier ein Beispiel, wie sie genutzt wird:
https://nbviewer.jupyter.org/github/pyt ... maps.ipynb

Das Ding ist, ich bekomme das nicht in mein Choropleth rein, weil im Beispiel ein geojson objekt verwendet wurde. fill_color erwartet einen string.

Jemand einen Ansatz für mich?

Viele Grüße
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Benutzeravatar
__blackjack__
User
Beiträge: 13926
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@naheliegend: Laut Dokumentation wird der Bereich standardmässig immer in 6 gleichmässig verteilte Abschnitte aufgeteilt. Wenn man das ändern will, also bei Dir anscheinend in 10 Abschnitte, dann brauchst Du das `bins`-Argument.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Stimmt. Danke dir.

Schmeißt mir aber einen Fehler:

Code: Alles auswählen

    folium.Choropleth(
        geo_data=GeoP_df,
        name='Gebiet',
        data=GeoP_df,
        columns=['ID', 'gebiet'],
        key_on='feature.properties.ID',
        bins=10,
        fill_color='YlGn',
        fill_opacity=0.7,
        line_opacity=0.1,
        legend_name='Gebiete'
    ).add_to(m)

OUT:
if scheme_info[base_code] == 'Qualitative':
KeyError: 'YlGn'
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

bins=10,
fill_color='Set3'

hat zum gewünschten Verhalten geführt. Danke.

closed.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
Antworten