python绘制等值线图_使用python祏rfer绘制等值线图的方式适题。

img_1_2809108161_3252276096_26.jpg

登录捍更多精彩内容~

您应该 登录 才可以下载淮surfer怎么画等值线,没有帐号?

x

本帖最簈ianz98 于 2019-6-10 16:26 编辑

几年前用VB搞过surfer自动绘制等值线图。最近尝试用PYTHON来实现类似用途,可以推动插值、白化、合并图层。工壮是python3.6 + surfer16 。但是在等值线时航问题,编写如下代码:

import win32com.client

import os

def changedate():

app = win32com.client.gencache.EnsureDispatch('Surfer.Application')

Plot = app.Documents.Add(1)

app.Visible = True

xpath=os.path.dirname(os.path.realpath(__file__))

datafile=os.path.join(xpath,'temp.dat')

gridfile=os.path.join(xpath,'temp.grd')

xfc5ec11b4db837f2000f86eea7638168916e011b.jpg

gridoutf=os.path.join(xpath,'temp-out.dat')

blankgrid=os.path.join(xpath,'temp_blank.grd')

outlinefile=os.path.join(xpath,'ZJ_outline.bln')

LS=os.path.join(xpath,'windlevel.lvl')

colormap=os.path.join(xpath,'windcolor.clr')

basefile=os.path.join(xpath,'ZjBack2.bln') #基底图

postfile=os.path.join(xpath,'StaPotst.dat') #张贴图

export_img=os.path.join(xpath,'temp.jpg') #输 /> #进行插值

app.GridData(DataFile=datafile,

xCol=1,

yCol=2,

zCol=3,

ShowReport=False,

Algorithm=2,

1483142496880_0.jpg

xMin=117.5,

xMax=123.5,

yMin=27,

yMax=31.5,

NumCols="1201",

NumRows="901",

OutGrid=gridoutf,

OutFmt=4)

#白化网羹

app.GridBlank(InGrid=gridfile,

BlankFile=outlinefile,

OutGrid=blankgrid)

###匀值线图

MapFrame1 = Plot.Shapes.AddContourMap(GridFileName=blankgrid)

img_2_3117269414D1945345846_27.jpg

#改变等值线图边界范围

MapFrame1.SetLimits(xMin=118, xMax=123, yMin=27, yMax=31.4)

MapFrame1.xLength=6

MapFrame1.yLength=5

ContourLayer = MapFrame1.Overlays(1)

ContourLayer.Name = "等值线图" #修改等值线图名称

#ContourLayer.Levels.Set(LS)

###赠底图

MapFrame2 = Plot.Shapes.AddBaseMap(ImportFileName=basefile)

BaseLayer1 = MapFrame2.Overlays(1)

BaseLayer1.Name = "基底图" #修改等值线图名称

###寓点图

MapFrame3 = Plot.Shapes.AddPostMap(postfile,LabCol=3)

PostMap = MapFrame3.Overlays(1)

4025027-585bed5b6f016b4c.jpg

PostMap.Name = "张贴图"

###合并图层生成一讣层

MapFrame1.Selected=True

MapFrame2.Selected=True

MapFrame3.Selected=True

NewMapFrame = Plot.Selection.OverlayMaps()

Plot.Shapes.SelectAll()

Plot.Export(export_img) #导超

#关闭堤 /> Plot.Close()

app.Quit()

代码可以执行,能够生成等值线图。

当我崔改ContourLayer.Levels.Set(LS)

ContourLayer的的Levels誓时褐抱错。但是ContourLayer.Name 这冈是可以修改的。

结论是:

1、PYTHON不是SURFER并不是surfer推吉发语言,发现有些语法和对显在自带的脚本编辑魄可用的,但是换成python就不行。网上能参考的PYTHON代码较少。

2、感景用PYTHON还是无法完美的祏rfer绘制等值线图,也用matplotlib库绘制过等值线图surfer怎么画等值线,但是聚类的方式跟效果和克里筋距还是很?font>

如果有其他人有更好的方法可以在此交?font>

密码更改失败请联系qq:937062711

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/ruanjian/article-136781-1.html

### 回答1: 在 Python绘制等值线图需要使用一些第三方库,如 Matplotlib、Seaborn 等。以下是一个使用 Matplotlib 的示例代码: ``` import matplotlib.pyplot as plt import numpy as np def f(x, y): return np.sin(x)**10 + np.cos(10 + y * x) * np.cos(x) x = np.linspace(-5, 5, 50) y = np.linspace(-5, 5, 40) X, Y = np.meshgrid(x, y) Z = f(X, Y) plt.contour(X, Y, Z, colors='black'); ``` 运行上面的代码将生成一个等值线图,其中线条颜色为黑色。 如果您想更改颜色图或添加其他特征,请参阅 Matplotlib 的文档以获得更多帮助。 ### 回答2: Python绘制等值线图可以使用Matplotlib库中的contour或contourf函数。这些函数能够在二维平面上绘制等值线或者填充等值区域。 首先,需要导入Matplotlib库: ```python import matplotlib.pyplot as plt ``` 然后,准备数据集。数据集通常是一个二维数组,代表函数在二维坐标上的取值。 接下来,使用contour函数绘制等值线图。该函数需要传入两个数组,分别代表x坐标和y坐标的取值范围。第三个参数是一个二维数组,代表函数在相应坐标上的取值。可选参数levels表示等值线的数量。 ```python plt.contour(x, y, z, levels) plt.show() ``` 如果希望在等值线之间填充颜色,可以使用contourf函数。其用法与contour函数类似。 ```python plt.contourf(x, y, z, levels) plt.show() ``` 需要注意的是,x、y坐标轴的取值范围需要与数据集的形状相对应,并且数据集的形状应该是二维的。 以上就是用Python绘制等值线图的简单步骤。通过调整参数和数据集,可以得到不同形状和颜色的等值线图。这对于显示函数的分布和变化趋势非常有用。 ### 回答3: Python是一种非常流行的编程语言,它拥有丰富的绘图库,可以用来绘制各种类型的图表,包括等值线图。 要绘制等值线图,可以使用Python中的matplotlib库。首先,我们需要导入所需的库,包括matplotlib和numpy: ``` import matplotlib.pyplot as plt import numpy as np ``` 接下来,我们可以创建一个2D数组来存储要绘制等值线图的数据。数据可以是一个函数的输出,也可以是实际测量的数据。在这个例子中,我们将使用一个简单的二维高斯函数来生成数据: ``` x = np.linspace(-5, 5, 100) y = np.linspace(-5, 5, 100) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) ``` 然后,我们使用matplotlib的`contour`函数来绘制等值线图。这个函数接受数据数组和一些可选参数,如颜色、线型和标签等。下面是一个简单的例子: ``` plt.contour(X, Y, Z) plt.xlabel('X') plt.ylabel('Y') plt.title('Contour Plot') plt.colorbar() plt.show() ``` 这段代码将绘制一个简单的等值线图,其中X和Y轴表示数据的坐标,Z轴表示等值线的高度。`xlabel`、`ylabel`、`title`和`colorbar`函数用于添加标签和颜色条。 通过这个简单的例子,我们可以了解如何使用Python绘制等值线图。根据实际需求,我们可以调整数据、调整线型和颜色、添加标签等,以满足不同的绘图要求。使用Python绘制等值线图非常简单方便,是数据分析和可视化的有力工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值