我试着用地理图来绘制旧金山县的犯罪分布图。问题是,当我使用地理图中的数据集绘制SF的地图时,x,y轴就不会出现。我正在使用这张地图作为我最后的演示文稿,所以我想它对我的观众来说会更容易读,因为他们会看到轴(经度和纬度作为轴)。我已经搜索了尽可能多的文档,并且尝试使用ax.axis('on'),但是没有工作。如有任何建议,我将不胜感激。谢谢(BTW,我在jupyter上做这件事) df是我使用的数据框架,它包含500 K犯罪记录,其中的位置包含经度和纬度。
gdf1 = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df.Longitude, df.Latitude))
sf = gpd.read_file(gplt.datasets.get_path("san_francisco"))
count = gdf1
ax = gplt.polyplot(sf, projection=gcrs.AlbersEqualArea(),figsize=(10,10))
gplt.kdeplot(count, cmap="Reds", shade=True, clip=sf, ax=ax, cbar=True)

发布于 2021-12-09 11:16:39
Geoplot构建在cartopy之上,返回的axis对象看起来确实是普通的cartopy GeoAxis对象,因此您应该能够使用该库中可用的任何图形自定义。默认情况下,cartopy绘图不包括轴滴答/滴答标签,因为库经常用于在投影中绘制,其中x和y值不对应于lat/lon。
若要在cartopy中添加网格线,请使用ax.gridlines。这些将正确处理您的投影和绘制lat/lon线作为轮廓在您的地图上。
从添加地图网格线和勾标上的文档
ax.gridlines(draw_labels=True, dms=True, x_inline=False, y_inline=False)有大量的参数用于网格线和定制它们的方法,但希望这将使您开始工作。
发布于 2021-12-09 11:32:38
提供更多几何学的另一种方法是mapbox密度图。如果需要网格,则可以添加其他层。
import requests
import pandas as pd
import plotly.express as px
df = pd.json_normalize(
requests.get("https://data.sfgov.org/resource/wg3w-h783.json").json()
)
px.density_mapbox(
df,
lat="latitude",
lon="longitude",
radius=10,
color_continuous_scale="reds",
center=dict(
lat=df["latitude"].astype(float).mean(),
lon=df["longitude"].astype(float).mean(),
),
zoom=10,
mapbox_style="carto-positron",
).update_layout(margin={"t":0,"b":0,"l":300,"r":300})

https://stackoverflow.com/questions/70287078
复制相似问题