Plotly dash 散点图不显示散点
Plotly dash scatter map doesn't display scatter points
Result
我有这个数据框
Paesi_principali,Value,iso_alpha
Stati Uniti,16.6,US
Italia,10.6,IT
Germania,5,DE
Messico,4.6,MX
India,4.2,IN
Francia,3.7,FR
Regno Unito,3.7,UK
Spagna,3.3,ES
Canada,3.1,CA
Grecia,3.1,GR
密码是
example_graph10 = px.scatter_geo(facebook1, locations="iso_alpha",locationmode ="ISO-3", color="iso_alpha",
hover_name="Paesi_principali", size="Value",
projection="natural earth")
但它不呈现。为什么?
- 双字符代码不识别国家
- 从 OWID 位置采购
- 将 2 个字符代码合并为 3 个字符代码,删除重复项并修复 UK
- 然后是一个简单的绘图案例
import io
import requests
import pandas as pd
import numpy as np
import plotly.express as px
facebook1 = pd.read_csv(io.StringIO("""Paesi_principali,Value,iso_alpha
Stati Uniti,16.6,US
Italia,10.6,IT
Germania,5,DE
Messico,4.6,MX
India,4.2,IN
Francia,3.7,FR
Regno Unito,3.7,UK
Spagna,3.3,ES
Canada,3.1,CA
Grecia,3.1,GR"""))
# get iso_code 3 chars for countries
dfloc = pd.read_html(
"https://github.com/owid/covid-19-data/blob/master/public/data/vaccinations/locations.csv"
)[0]
# join and fix 2 character codes to 3 character codes
facebook1 = facebook1.merge(
dfloc.assign(iso2=np.where(dfloc["iso_code"].eq("GBR"), "UK",dfloc["iso_code"].str[0:2])).loc[
:, ["iso_code", "location", "iso2"]
],
left_on="iso_alpha",
right_on="iso2",
how="inner",
).pipe(lambda d: d.loc[~d["iso_code"].isin(["EST","FRO","GRL","GRD","CAF"])])
px.scatter_geo(facebook1, locations="iso_code",locationmode ="ISO-3", color="iso_alpha",
hover_name="Paesi_principali", size="Value",
projection="natural earth")
Result
我有这个数据框
Paesi_principali,Value,iso_alpha
Stati Uniti,16.6,US
Italia,10.6,IT
Germania,5,DE
Messico,4.6,MX
India,4.2,IN
Francia,3.7,FR
Regno Unito,3.7,UK
Spagna,3.3,ES
Canada,3.1,CA
Grecia,3.1,GR
密码是
example_graph10 = px.scatter_geo(facebook1, locations="iso_alpha",locationmode ="ISO-3", color="iso_alpha",
hover_name="Paesi_principali", size="Value",
projection="natural earth")
但它不呈现。为什么?
- 双字符代码不识别国家
- 从 OWID 位置采购
- 将 2 个字符代码合并为 3 个字符代码,删除重复项并修复 UK
- 然后是一个简单的绘图案例
import io
import requests
import pandas as pd
import numpy as np
import plotly.express as px
facebook1 = pd.read_csv(io.StringIO("""Paesi_principali,Value,iso_alpha
Stati Uniti,16.6,US
Italia,10.6,IT
Germania,5,DE
Messico,4.6,MX
India,4.2,IN
Francia,3.7,FR
Regno Unito,3.7,UK
Spagna,3.3,ES
Canada,3.1,CA
Grecia,3.1,GR"""))
# get iso_code 3 chars for countries
dfloc = pd.read_html(
"https://github.com/owid/covid-19-data/blob/master/public/data/vaccinations/locations.csv"
)[0]
# join and fix 2 character codes to 3 character codes
facebook1 = facebook1.merge(
dfloc.assign(iso2=np.where(dfloc["iso_code"].eq("GBR"), "UK",dfloc["iso_code"].str[0:2])).loc[
:, ["iso_code", "location", "iso2"]
],
left_on="iso_alpha",
right_on="iso2",
how="inner",
).pipe(lambda d: d.loc[~d["iso_code"].isin(["EST","FRO","GRL","GRD","CAF"])])
px.scatter_geo(facebook1, locations="iso_code",locationmode ="ISO-3", color="iso_alpha",
hover_name="Paesi_principali", size="Value",
projection="natural earth")