python 离散点绘制等高线

emisuanfu 2019-04-17 04:08:57
如何用python绘制一些不规则离散点等高线图?

网上能找到的案例基本都是根据公式计算的规整数据。



练习数据:

533.85 11 86.67
531.9 18.8 89.88
533.85 40.9 90.07
533.85 61.2 88.86
534.3 81.6 87.39
534.3 102.5 85.96
533.85 122.5 84.54
534.75 141.6 83.23
533.85 161.8 81.80
534.3 182 80.03
533.85 201.8 78.35
533.85 222.1 76.43
533.25 243.5 74.42
534.3 265.8 72.22
534.15 286.1 69.98
534.3 306.5 67.52
533.85 326.1 64.94
533.4 344.1 62.07
533.85 352.9 60.22
1033.2 11.2 86.47
1032.75 21 91.11
1033.05 41.1 92.47
1033.5 61.5 92.25
1033.05 81.8 91.87
1033.2 102.7 91.16
1033.05 122.7 90.48
1032.75 141.8 89.85
1033.05 162 89.07
1033.5 182.3 88.19
1033.5 202.1 87.32
1033.5 222.3 86.33
1033.35 243.7 85.28
1033.05 266.1 84.24
1033.5 286.4 83.10
1033.05 306.8 81.83
1033.5 326.5 80.34
1033.05 344.5 78.81
1033.5 353.4 77.83
1533 11.6 84.75
1533 21.4 90.66
1533 41.7 92.99
1533 62.2 93.53
1533 82.8 93.51
1533 103.7 93.34
1533 123.9 92.96
1533 143.1 92.67
1533 163.4 92.22
1533 183.7 91.72
1533 203.5 91.25
1533 223.7 90.61
1533 245.2 89.93
1533 267.4 89.24
1533 287.9 88.51
1533 308.2 87.67
1533 327.9 86.70
1533 345.8 85.65
1533 354.6 84.91
2032.5 11.8 84.39
2032.5 21.6 90.74
2032.5 42 93.30
2032.5 62.6 94.04
2031 83.3 94.20
2032.5 104.3 94.10
2032.5 124.4 94.00
2032.5 143.7 93.74
2032.5 164 93.42
2031 183.2 93.19
2032.5 204 92.74
2032.5 224.4 92.23
2032.5 245.6 91.78
2032.5 268 91.26
2032.5 288.3 90.70
2032.5 308.7 90.08
2031 328.3 89.44
2032.5 346.2 88.60
2032.5 355 88.10
2533.5 11.5 84.53
2533.5 21.2 91.18
2533.5 41.4 93.90
2533.5 61.9 94.56
2533.5 82.3 94.89
2533.5 103.2 94.92
2533.5 123.2 94.84
2533.5 142.3 94.77
2533.5 162.5 94.56
2533.5 182.8 94.29
2533.5 202.6 94.00
2533.5 222.9 93.66
2533.5 244.1 93.31
2533.5 266.4 92.93
2533.5 286.8 92.45
2533.5 307.1 91.98
2533.5 326.8 91.40
2533.5 344.8 90.85
2533.5 353.6 90.49
3033 11.5 84.59
3033 21.3 90.81
3033 41.5 93.79
3033 61.9 94.71
3033 82.3 95.02
3033 103.1 95.12
3033 123.1 95.04
3033 142.2 94.98
3034.5 162.4 94.75
3033 182.6 94.61
3033 202.3 94.39
3033 222.5 94.08
3033 243.7 93.78
3033 266 93.45
3033 286.3 93.05
3033 306.6 92.64
3033 326.3 92.14
3034.5 344.1 91.57
3034.5 352.9 91.23
3532.5 11.6 84.27
3532.5 21.3 91.05
3532.5 41.6 93.86
...全文
1004 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
轻斟浅醉。 2021-10-28
  • 打赏
  • 举报
回复

f=open(r'等高线绘制数据.txt','r')
x=[]#创建三个列表用于存放点的数据
y=[]
h=[]
for line in f:
p=line[:-1]#去掉每行最后的换行符
a=p.split(',')#因为每行每个数据之间用","隔开,去掉逗号。
x.append(float(a[1]))
y.append(float(a[2]))
h.append(float(a[3]))
f.close()
import numpy as np
points=[]
for i in range(len(x)):
point=[]
point.append(x[i])
point.append(y[i])
points.append(point)
points=np.array(points)
xi=np.linspace(min(x),max(x),300)
yi=np.linspace(min(y),max(y),300)

xi,yi=np.meshgrid(xi,yi)#网格化

from scipy.interpolate import griddata
zi=griddata(points,h,(xi,yi),method='cubic')
import matplotlib.pyplot as plt
plt.contour(xi,yi,zi)
plt.show()

职业打桩师 2021-02-07
  • 打赏
  • 举报
回复
使用tricontourf
饕餮之影 2020-12-30
  • 打赏
  • 举报
回复
先根据散点插值成二维数组,再用contour画等高线
Coder_GHQ 2020-12-02
  • 打赏
  • 举报
回复
您好,我想问一下您这个问题解决了么?

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧