当前位置: 首页 > 面试题库 >

来自xyz数据的Matplotlib轮廓:griddata无效索引

齐宗清
2023-03-14
问题内容

我正在尝试使用以下格式的文件的matplotlib绘制轮廓图:

x1 y1 z1

x2 y2 z2

等等

我可以用numpy.loadtxt加载它以获得向量。到目前为止,没有问题。

我阅读了这篇文章以了解如何进行绘制,并且可以通过复制粘贴来复制它,因此,我确定我的安装没有错:

http://matplotlib.org/examples/pylab_examples/griddata_demo.html

我知道我必须将x和y输入为向量,将z输入为数组,这可以使用griddata完成。这也是我在本网站上找到的。

该文件说:

zi = griddata(x,y,z,xi,yi)使形式z = f
x,y)的表面适合(通常)非均匀间隔向量(x,y,z)中的数据。griddata()在(xi,yi)指定的点上插值该曲面以生成zi。xi和yi必须描述规则的网格,可以是1D或2D,但必须单调递增。

为了示例,我编写了以下代码:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as ml

x=np.linspace(1.,10.,20)
y=np.linspace(1.,10.,20)
z=np.linspace(1.,2.,20)

xi=np.linspace(1.,10.,10)
yi=np.linspace(1.,10.,10)

zi = ml.griddata(x,y,z,xi,yi)

但是,当涉及到网格数据时,出现以下错误:IndexError:无效索引

因此,我尝试对文档的示例进行如下修改:

from matplotlib.mlab import griddata
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-2.1,2.1,300)
y = np.linspace(-2.1,2.1,300)
z = x*np.exp(-x**2-y**2)
# define grid.
xi = np.linspace(-2.1,2.1,100)
yi = np.linspace(-2.1,2.1,200)
# grid the data.
zi = griddata(x,y,z,xi,yi,interp='linear')

而且我得到同样的错误。我不明白怎么了。

谢谢你的帮助。


问题答案:

好的,我终于找到了绘制它的解决方案。对于那些感兴趣的人,这是窍门:将Scipy中的griddata与’nearest’方法一起使用。

from scipy.interpolate import griddata
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(1.,10.,20)
y=np.linspace(1.,10.,20)
z=z = np.random.random(20)
xi=np.linspace(1.,10.,10)
yi=np.linspace(1.,10.,10)

X,Y= np.meshgrid(xi,yi)
Z = griddata((x, y), z, (X, Y),method='nearest')
plt.contourf(X,Y,Z)


 类似资料:
  • 问题内容: 我想从均匀分布的2D数据(类似图像的数据)的单个轮廓中获取数据。 基于在类似问题中找到的示例:如何获得轮廓图(matplotlib)绘制的线的(x,y)值? 该调用的结果是: 基于这些图,此结果是有意义的,并且似乎是轮廓线的(y,x)对的集合。 除了手动遍历此返回值,提取直线的坐标并组装线的数组以外,还有更好的方法从对象取回数据吗?从中提取数据时是否有陷阱要注意? 或者,是否有其他选择

  • 问题内容: CSS中有什么方法可以为不同颜色的文本提供轮廓?我想突出显示文本的某些部分以使其更直观-例如名称,链接等。更改链接颜色等现在很普遍,因此我需要一些新的东西。 问题答案: 在CSS3中有一个名为webkit的实验性属性,我一直在尝试使其工作一段时间,但到目前为止仍未成功。 相反,我使用的是已经受支持的属性(我相信Chrome,Firefox,Opera和IE 9 支持该属性)。 使用四个

  • 问题内容: 每当(至少)两个人尝试在我的应用程序中生成轮廓图时,其中至少一个会收到随机错误,具体取决于第一个人设法绘制的距离。(“未知元素o”,“ ContourSet必须为在当前的轴中”只是两种可能性) 以下是可能会产生错误的缩减测试,如果您尝试一次在2个或多个选项卡中加载此页面,则第一个将正确呈现,而第二个将产生错误。(我发现执行此操作的最简单方法是用鼠标中键几次单击chrome中的刷新页面按

  • 问题内容: 我有一些外部程序作为XYZ值生成的表面数据。我想使用matplotlib创建以下图形: 表面图 等高线图 等高线图与表面图叠加 我看了几个在matplotlib中绘制表面和轮廓的示例-但是,Z值似乎是X和Y的函数,即Y〜f(X,Y)。 我认为我将需要转换我的Y变量,但是我还没有看到任何显示该操作方法的示例。 因此,我的问题是这样的:给定一组(X,Y,Z)点,如何从该数据生成曲面和轮廓图

  • 主要内容:1. outline-style,2. outline-width,3. outline-color,4. outline,5. outline-offset轮廓(outline)是绘制于元素周围的一条线,位于边框的外围(紧贴着边框),主要用来突出显示某个元素,如下图所示: 图:轮廓(outline) 轮廓和边框看起来非常相似,但它们之间也并非没有区别,例如: 元素上下左右四个方向上边框的样式、宽度、颜色可以单独设置,而轮廓在元素四个方向的宽度、样式、颜色都是相同的,不能单独设置; 边

  • 我有2个URL,其中1个特定于Dev,另一个特定于Prod。我也在使用Spring profiling,其中我有一个单独的文件用于Dev和Prod application-Dev。性能和应用-prod。属性和我的应用。对于Dev env,属性文件如下所示 spring.profiles.active=dev 现在在我的java代码中,我想有一个属性,它将根据我使用的Spring配置文件绑定到适当的