Contours 等高线图

本文介绍如何使用Python绘制等高线图,包括生成高度值、填充颜色、绘制等高线及添加高度数字等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、画等高线

数据集即三维点 (x,y) 和对应的高度值,共有256个点。高度值使用一个 height function f(x,y) 生成。 x, y 分别是在区间 [-3,3] 中均匀分布的256个值,并用meshgrid在二维平面中将每一个x和每一个y分别对应起来,编织成栅格:

import matplotlib.pyplot as plt
import numpy as np

def f(x,y):
    # the height function
    return (1 - x / 2 + x**5 + y**3) * np.exp(-x**2 -y**2)

n = 256
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)
X,Y = np.meshgrid(x, y)

接下来进行颜色填充。使用函数plt.contourf把颜色加进去,位置参数分别为:X, Y, f(X,Y)。透明度0.75,并将 f(X,Y) 的值对应到color map的暖色组中寻找对应颜色。

# use plt.contourf to filling contours
# X, Y and value for (X,Y) point
plt.contourf(X, Y, f(X, Y), 8, alpha=.75, cmap=plt.cm.hot)

接下来进行等高线绘制。使用plt.contour函数划线。位置参数为:X, Y, f(X,Y)。颜色选黑色,线条宽度选0.5。现在的结果如下图所示,只有颜色和线条,还没有数值Label:

# use plt.contour to add contour lines
C = plt.contour(X, Y, f(X, Y), 8, colors='black', linewidth=.5)
#其中,8代表等高线的密集程度,这里被分为10个部分。如果是0,则图像被一分为二。

2、添加高度数字

最后加入Label,inline控制是否将Label画在线里面,字体大小为10。并将坐标轴隐藏:

 

plt.clabel(C, inline=True, fontsize=10)
plt.xticks(())
plt.yticks(())

 

 

 

posted on 2018-07-29 22:10 Anhoo 阅读( ...) 评论( ...) 编辑 收藏
### 创建和编辑等高线图 #### 使用ArcGIS Pro创建等高线图 在ArcGIS Pro中创建等高线图可以通过多种方式完成。一种常见的方式是从DEM(数字高程模型)数据生成等高线。这通常涉及使用空间分析工具箱中的“Contour”工具来从栅格表面提取等高线矢量要素。 ```python import arcpy from arcpy import env from arcpy.sa import * # 设置工作环境 env.workspace = "C:/data" # 输入的DEM文件路径 inRaster = "elevation.tif" outContours = "contours.shp" interval = 10 # 等高距设置为10米 # 执行Contour函数以生成等高线 arcpy.Contour_3d(inRaster, outContours, interval) ``` 此脚本展示了如何利用Python脚本调用`Contour_3d`命令自动执行这一过程[^1]。 对于复杂的情况,如果需要基于特定条件定制化处理,可能还需要结合其他地理处理工具和服务来进行预处理或后续操作。 #### 编辑已有的等高线图 当涉及到编辑现有的等高线地图时,在ArcGIS Pro中有专门用于此类任务的功能区面板。“编辑”选项卡提供了丰富的交互式工具集支持对几何图形进行修改,比如调整节点位置、添加新特征或是删除不需要的部分等。此外,“属性表”窗口允许用户直接查看并改各条等高线的相关字段信息,如高度值等[^3]。 值得注意的是,虽然ArcGIS Pro本身并没有像某些早期版本那样提供特别针对等高线绘制的一键解决方案,但是通过组合运用上述提到的各种功能模块同样能够高效地达成目标[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值