python==3.8 plotly==4.10.0
À propos de scatter_geo et line_geo faciles
Vous pouvez faire un chiffre en spécifiant la longitude et la latitude, ou en spécifiant le nom du pays à partir de l'iso-code. Le code du pays est ici
Il existe plusieurs ensembles de données dans plotly, alors utilisons celui qui contient déjà le nom du pays et les informations saisies. Vous pouvez vérifier les données prises en charge depuis github (https://github.com/plotly/datasets)
Le nom du pays est en iso_alpha, et je vais le coder en couleur en fonction du nom du continent.
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()
Cette fois, j'ai choisi un format comme un globe, mais vous pouvez également spécifier une carte ou un affichage hémisphérique
(Utilisez la fonction line_geo pour connecter les lignes)
Le format à tracer doit être passé à la projection au format caractère,
'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'
Peut être spécifié. Ou si vous souhaitez discuter uniquement d'un domaine spécifique la portée peut également être spécifiée,
'world', 'usa', 'europe', 'asia', 'africa', 'north america', 'south america', 'albers usa'
Vous pouvez agrandir la zone de
Vous pouvez également modifier la taille du point en passant une valeur à size Vous pouvez également créer des animations en passant des données numériques et temporelles à animation_frame. Il crée une animation dans laquelle les valeurs changent dans l'ordre spécifié.
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()
Vous pouvez utiliser FIPScode pour colorer le code par subdivisions telles que les petits états. Pour ce faire, vous devez préparer un fichier geojson et transmettre le code du pays et le code de l'état, ce qui est difficile à expliquer. Je pense que c'est une bonne idée de vérifier autant que vous en avez besoin, quand vous en avez besoin. Étant donné que certains geojson sont inclus en tant qu'ensemble de données parcellaires, il est recommandé de l'appliquer à ce que vous souhaitez exécuter tout en regardant le code et les données.
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