Python导入txt表文件中的轮廓图

Python导入txt表文件中的轮廓图,第1张

Python导入txt表文件中的轮廓

我的评论的后续内容…首先,我将替换所有这些行:

data = np.loadtxt(r'dataa.txt')a = [data[:,0]]b = [data[:,1]]n = [data[:,2]]x = np.asarray(a)y = np.asarray(b)z = np.asarray(n)

带有

x, y, z = np.genfromtxt(r'dataa.txt', unpack=True)

您的原始代码是在前面添加一个额外的轴,因为这

[data[:,0]]
带有一个元素的数组的列表。结果
x.shape
将是
(1, N)
if
(N,)
。所有这些都可以使用上面的最后一行自动完成,或者您可以使用相同的
data
加载并说:

x = data[:,0]y = data[:,1]z = data[:,2]

因为这些切片将为您提供阵列。

但是,您还没有完成,因为

plt.contour
希望您为其提供一个2d数组
z
,而不是一个1d值数组。现在,您似乎
z
在给
x,y
定点具有值,但是
contour
希望您给它一个2d数组,例如图像。

之前,我可以回答这个问题,我需要知道如何

x
y
间隔。如果有规律的话,您可以很容易地填充一个数组。如果不定期,则基本上必须先进行插值,然后才能绘制轮廓图。

要进行插值,请使用

import numpy as npimport matplotlib.pyplot as pltimport scipy.interpolateN = 1000 #number of points for plotting/interpolationx, y, z = np.genfromtxt(r'dataa.txt', unpack=True)xi = np.linspace(x.min(), x.max(), N)yi = np.linspace(y.min(), y.max(), N)zi = scipy.interpolate.griddata((x, y), z, (xi[None,:], yi[:,None]), method='cubic')fig = plt.figure()plt.contour(xi, yi, zi)plt.xlabel("X")plt.ylabel("Y")plt.show()


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5631775.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存