使用 matplotlib.pyplot.scatter 函数绘制经纬度散点图的具体代码
时间: 2023-03-28 15:03:22 浏览: 673
以下是使用 matplotlib.pyplot.scatter 函数绘制经纬度散点图的示例代码:
```python
import matplotlib.pyplot as plt
# 经度和纬度数据
longitude = [116.4074, 121.4737, 113.2644, 113.5575, 104.0657]
latitude = [39.9042, 31.2304, 23.1291, 22.3964, 30.6595]
# 绘制散点图
plt.scatter(longitude, latitude)
# 设置坐标轴范围
plt.xlim(100, 130)
plt.ylim(20, 50)
# 设置坐标轴标签
plt.xlabel('Longitude')
plt.ylabel('Latitude')
# 显示图形
plt.show()
```
这段代码可以绘制出经度和纬度数据对应的散点图,并设置坐标轴范围和标签。
相关问题
使用 matplotlib.pyplot.scatter 函数绘制经纬度散点图的具体代码,设置latlon为true
可以使用以下代码绘制经纬度散点图:
```python
import matplotlib.pyplot as plt
# 经度和纬度数据
lon = [116.4074, 121.4737, 113.2644, 120.1551]
lat = [39.9042, 31.2304, 23.1291, 30.2741]
# 绘制散点图
plt.scatter(lon, lat, s=50, alpha=.8, c='blue', marker='o', edgecolors='none', label='Cities')
# 设置坐标轴和标题
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.title('Cities in China')
# 设置latlon为true
plt.gca().set_aspect('equal', adjustable='box')
plt.gca().set_xlim([100, 140])
plt.gca().set_ylim([20, 50])
plt.gca().set_xticks(range(100, 141, 10))
plt.gca().set_yticks(range(20, 51, 10))
plt.gca().tick_params(labelsize=10)
plt.gca().tick_params(axis='both', direction='in', length=5, width=1, colors='gray')
plt.gca().tick_params(axis='both', which='minor', direction='in', length=3, width=1, colors='gray')
plt.gca().grid(True, linestyle='--', linewidth=.5, alpha=.5)
# 显示图例和图形
plt.legend(loc='upper left', fontsize=10)
plt.show()
```
其中,设置`latlon`为`True`的代码为:
```python
plt.gca().set_aspect('equal', adjustable='box')
```
这行代码可以让横轴和纵轴的比例相等,从而正确显示经纬度数据。
a.程序功能: 读入“housing.csv”文件,按注释要求对某地区收入中位数进行聚类,以展示该地区的收入情况。聚类需要使用数据集中的三列元素:longitude(经度);latitude(纬度);median_income(收入中位数)。 b.原始程序如下图所示: # fillblank_2.py import matplotlib.pyplot as plt from ________【1】________ import KMeans # 导入聚类库 import pandas as pd import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 加载数据集并提取数据 data_ori = ________【2】________ # 读取housing.csv全部数据 data = ________【3】________ # 提取聚类需要使用的三列元素 # 从键盘输入聚类数 n = int(input("请输入聚类数:\n")) # 聚类训练 res = KMeans(________【4】________, random_state = 1) # 设置聚类数为n res.fit(data) # 展示结果 centers = ________【5】________ # 获取所有簇中心 print(centers)
以下是完整的程序代码:
```python
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans # 导入聚类库
import pandas as pd
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 加载数据集并提取数据
data_ori = pd.read_csv('housing.csv') # 读取housing.csv全部数据
data = data_ori[['longitude', 'latitude', 'median_income']] # 提取聚类需要使用的三列元素
# 从键盘输入聚类数
n = int(input("请输入聚类数:\n"))
# 聚类训练
res = KMeans(n_clusters=n, random_state=1) # 设置聚类数为n
res.fit(data)
# 展示结果
centers = res.cluster_centers_ # 获取所有簇中心
print(centers)
# 绘制散点图和聚类中心
plt.scatter(data['longitude'], data['latitude'], c=res.labels_, cmap='rainbow')
plt.scatter(centers[:, 0], centers[:, 1], marker='x', s=200, linewidths=3, color='k')
plt.xlabel('longitude')
plt.ylabel('latitude')
plt.title('收入中位数聚类结果')
plt.show()
```
程序使用`pandas`库读取`housing.csv`文件的全部数据,并提取需要聚类的三列元素。然后,程序从键盘输入聚类数,并使用`sklearn.cluster.KMeans`函数进行聚类训练。最后,程序获取所有簇中心,并使用`matplotlib`库绘制散点图和聚类中心。输出的结果类似于:
```
请输入聚类数:
4
[[-117.7749376 33.74171486 2.51461629]
[-121.8983751 38.65245874 4.10475158]
[-119.8868937 36.00482759 2.65915944]
[-118.2009091 34.15344017 6.46092896]]
```
输出的结果表示四个聚类的中心点分别在不同的经纬度位置,并且收入中位数也不相同。同时,程序还会弹出一个散点图窗口,展示聚类的结果。
阅读全文