matplotlib 如何添加Map与集群点与Map和上下文

68de4m5k  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(131)

我是新来的candandas和contextily,想了解它如何更好地工作。我有一些几何点被绘制,已集群。在此之上,我想添加一个Map下面。
我这样做是为了生成我的集群。

from sklearn.preprocessing import StandardScaler

# Scale the latitude and longitude columns
scaler = StandardScaler()
mrt[['longitude', 'latitude']] = scaler.fit_transform(mrt[['latitude', 'longitude']])

from sklearn.cluster import KMeans

# Specify the number of clusters
num_clusters = 5

# Initialize the KMeans model
kmeans = KMeans(n_clusters=num_clusters)

# Fit the model to the data
kmeans.fit(mrt[['longitude', 'latitude']])

# Get the cluster labels for each data point
cluster_labels = kmeans.labels_

然后,这是我卡住试图绘制集群点和背景Map在一起。

import matplotlib.pyplot as plt

# Plot the data points with their cluster labels
plt.scatter(mrt['longitude'], mrt['latitude'], c=cluster_labels)
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.title('Clustering of Geo Location Coordinates')

sg = ctx.Place("Singapore", source=ctx.providers.OpenStreetMap.Mapnik)
x = plt.show()
y = sg.plot()

基本上,我想把底部的Map'sg'到我的阴谋。
enter image description here
我试过add_basemap,但似乎无法让它工作。不是很熟悉这个,有什么建议吗?

cgyqldqp

cgyqldqp1#

首先,创建ax和fig,并在代码中使用ax类参数:

fig,ax = plt.subplots(1,1,figsize=(10,12))

# Plot the data points with their cluster labels
plt.scatter(mrt['longitude'], mrt['latitude'], c=cluster_labels,ax=ax)
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.title('Clustering of Geo Location Coordinates')

sg = ctx.Place("Singapore", source=ctx.providers.OpenStreetMap.Mapnik,ax=ax)
plt.show()

相关问题