python==3.8 plotly==4.10.0
Über easy Scatter_geo und Line_geo
Sie können eine Zahl erstellen, indem Sie den Längen- und Breitengrad angeben oder den Ländernamen aus dem Isocode angeben. Der Ländercode lautet hier
Es gibt mehrere Datensätze in Plotly. Verwenden wir also den Datensatz, in den bereits der Ländername und die eingegebenen Informationen eingegeben wurden. Sie können die unterstützten Daten von github überprüfen (https://github.com/plotly/datasets).
Der Ländername ist in iso_alpha und ich werde ihn basierend auf dem Kontinentnamen farblich kennzeichnen.
import plotly.express as px
df = px.data.gapminder().query("year == 2007")
fig = px.scatter_geo(df, locations="iso_alpha",
color="continent",
projection="orthographic")
fig.show()
Dieses Mal habe ich ein Format wie einen Globus gewählt, aber Sie können auch eine Karte oder eine halbkugelförmige Anzeige angeben
(Verwenden Sie die Funktion line_geo, um die Leitungen zu verbinden.)
Das zu zeichnende Format muss im Zeichenformat an die Projektion übergeben werden.
'equirectangular', 'mercator', 'orthographic', 'natural earth', 'kavrayskiy7', 'miller', 'robinson', 'eckert4', 'azimuthal equal area', 'azimuthal equidistant', 'conic equal area', 'conic conformal', 'conic equidistant', 'gnomonic', 'stereographic', 'mollweide', 'hammer', 'transverse mercator', 'albers usa', 'winkel tripel', 'aitoff', 'sinusoidal'
Kann angegeben werden. Oder wenn Sie nur einen bestimmten Bereich diskutieren möchten Umfang kann auch angegeben werden,
'world', 'usa', 'europe', 'asia', 'africa', 'north america', 'south america', 'albers usa'
Sie können den Bereich von vergrößern
Sie können die Größe des Punkts auch ändern, indem Sie einen Wert an size übergeben Sie können auch Animationen erstellen, indem Sie numerische Daten und Zeitdaten an animation_frame übergeben. Es wird eine Animation erstellt, in der sich die Werte in der angegebenen Reihenfolge ändern.
import plotly.express as px
df = px.data.gapminder()
fig = px.scatter_geo(df,
locations="iso_alpha",
color="continent",
hover_name="country",
size="pop",
animation_frame="year",
projection="natural earth")
fig.show()
Sie können FIPScode verwenden, um Farbcodierungen nach Unterteilungen wie kleinen Zuständen vorzunehmen. Dazu müssen Sie eine Geojson-Datei vorbereiten und den Länder- und Staatscode übergeben, was schwer zu erklären ist. Ich denke, es ist eine gute Idee, so viel zu überprüfen, wie Sie brauchen, wenn Sie es brauchen. Da etwas Geojson als Plot-Datensatz enthalten ist, wird empfohlen, es auf das anzuwenden, was Sie ausführen möchten, während Sie den Code und die Daten betrachten.
from urllib.request import urlopen
import json
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
counties = json.load(response)
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv",
dtype={"fips": str})
import plotly.express as px
fig = px.choropleth(df, geojson=counties, locations='fips', color='unemp',
color_continuous_scale="Viridis",
range_color=(0, 12),
scope="usa",
labels={'unemp':'unemployment rate'}
)
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})
fig.show()
import plotly.express as px
df = px.data.gapminder().query("year == 2007")
avg_lifeExp = (df['lifeExp']*df['pop']).sum()/df['pop'].sum()
fig = px.choropleth(df, locations="iso_alpha", color="lifeExp",
color_continuous_scale=px.colors.diverging.BrBG,
color_continuous_midpoint=avg_lifeExp,
title="World Average Life Expectancy in 2007 in years was %.1f" % avg_lifeExp)
fig.show()
import plotly.express as px
df = px.data.carshare()
fig = px.scatter_mapbox(df, lat="centroid_lat", lon="centroid_lon", color="peak_hour", size="car_hours",
color_continuous_scale=px.colors.cyclical.IceFire, size_max=15, zoom=10,
mapbox_style="carto-positron")
fig.show()
Recommended Posts