即使我的地图中存在 NaN 数据,是否仍然可以显示形状轮廓?
Is there a way to still display shape outline even when NaN data are present in my map?
我正在尝试以地图格式显示状态 csv 数据并用数据注释状态。有些州没有数据(nan),当我绘制时,这些没有数据的州就消失了。我希望这些状态看起来静止,但只是空白。我尝试使用 fillna("") 函数,但现在我的颜色图显示不正确,每个标签后出现小数点“.0”。下面是我的代码:
csv = pd.read_csv(r'C:\Downloads\Data.csv')
sf = r'C:\Downloads\s_11au16\s_11au16.shp'
US = gpd.read_file(sf)
#Merge them
data = gpd.GeoDataFrame(csv.merge(US)).fillna("")
#set projection
df1 = data.to_crs(epsg=6923)
df1
#set up basemap
ax = df1.plot(figsize = (12,8), column="data", cmap="Greens", edgecolor='k', linewidth=.5, vmin=40, vmax=80)
ax.set_axis_off()
#annotate
df1.apply(lambda x: ax.annotate(text=x['data'], xy=x.geometry.centroid.coords[0], ha='center', fontsize=14,path_effects=[pe.withStroke(linewidth=3, foreground="white")]), axis=1)
Output map result
因此,在使用 fillna("") 函数时,有什么方法可以恢复我的颜色图并去掉标签后的小数点吗?还是有另一种方法可以做到这一点?下面是地图在没有嵌入 fillna("") 函数的情况下的样子的另一张图片。我希望删除这些 nan 标签,但将那些州边界放回原处,并删除小数点。
Output 2, without fillna
请参阅有关使用缺失数据绘图的文档 https://geopandas.org/en/stable/docs/user_guide/mapping.html#missing-data。您需要指定 missing_kwds
包含样式,因为它们无法从数据中推断出来。
ax = df1.plot(
figsize = (12,8),
column="data",
cmap="Greens",
edgecolor='k',
linewidth=.5,
vmin=40,
vmax=80,
missing_kwds={
"color": "lightgrey",
"edgecolor": "k",
"label": "Missing values",
},)
我正在尝试以地图格式显示状态 csv 数据并用数据注释状态。有些州没有数据(nan),当我绘制时,这些没有数据的州就消失了。我希望这些状态看起来静止,但只是空白。我尝试使用 fillna("") 函数,但现在我的颜色图显示不正确,每个标签后出现小数点“.0”。下面是我的代码:
csv = pd.read_csv(r'C:\Downloads\Data.csv')
sf = r'C:\Downloads\s_11au16\s_11au16.shp'
US = gpd.read_file(sf)
#Merge them
data = gpd.GeoDataFrame(csv.merge(US)).fillna("")
#set projection
df1 = data.to_crs(epsg=6923)
df1
#set up basemap
ax = df1.plot(figsize = (12,8), column="data", cmap="Greens", edgecolor='k', linewidth=.5, vmin=40, vmax=80)
ax.set_axis_off()
#annotate
df1.apply(lambda x: ax.annotate(text=x['data'], xy=x.geometry.centroid.coords[0], ha='center', fontsize=14,path_effects=[pe.withStroke(linewidth=3, foreground="white")]), axis=1)
Output map result
因此,在使用 fillna("") 函数时,有什么方法可以恢复我的颜色图并去掉标签后的小数点吗?还是有另一种方法可以做到这一点?下面是地图在没有嵌入 fillna("") 函数的情况下的样子的另一张图片。我希望删除这些 nan 标签,但将那些州边界放回原处,并删除小数点。
Output 2, without fillna
请参阅有关使用缺失数据绘图的文档 https://geopandas.org/en/stable/docs/user_guide/mapping.html#missing-data。您需要指定 missing_kwds
包含样式,因为它们无法从数据中推断出来。
ax = df1.plot(
figsize = (12,8),
column="data",
cmap="Greens",
edgecolor='k',
linewidth=.5,
vmin=40,
vmax=80,
missing_kwds={
"color": "lightgrey",
"edgecolor": "k",
"label": "Missing values",
},)