从数据框创建等高线图

琼·卡尔·蒙特罗·希门尼斯

我有这个日期范围:

数据框

我想使用此数据创建轮廓图,并尝试执行以下操作:

x= np.arange(0, 430, 431)
y= np.arange(0, 224, 225)
value = df["Value"].values
X, Y = np.meshgrid(x, y)
plt.contour(X, Y, value, 50)

我在执行程序时遇到了这个问题:

等高线图

我现在不知道该怎么办...我认为Z出了点问题,我认为它是1D,我应该是2D,但我不知道。感谢您的帮助。

已编辑

我使用了以下代码:

x = np.arange(431)
y = np.arange(225)
X, Y = np.meshgrid(y, x)
values = df["Value"].values
values2d = np.reshape(values,(431,225))
plt.contour(X, Y, values2d, 100, cmap='RdGy'))

我得到:

等高线图1

使用Y, X = np.meshgrid(y, x)intead时,我得到:

等高线图2

表示值时一定有问题。谢谢。

马克

您必须转换您的z值数组以符合您创建的网格的要求。

values2d = np.reshape(values,(225,330))
plt.contour(X, Y, values2d)

同样,arange的参数也是错误的:np.arange(arange([start,] stop[, step,], dtype=None))您的数组大小为零。我还建议从您的数据框中提取/重用网格网格,而不要手动创建网格网格。


如果有帮助,下面是一个为高斯函数绘制轮廓图的简单工作示例:

import numpy as np, matplotlib.pyplot as plt

x = np.arange(330)
y = np.arange(225)
X, Y = np.meshgrid(x, y)

gauss = lambda x,m,s:np.exp(np.power(x-m,2)/(-2*s*s))
values   = gauss(X.flatten(),140,50)*gauss(Y.flatten(),110,20)
values2d = np.reshape(values,X.shape) 
plt.contour(X, Y, values2d)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R中自定义函数的等高线图

来自分类Dev

给定范围内的matplotlib等高线图

来自分类Dev

将水平值存储在等高线图中

来自分类Dev

等高线图x标签

来自分类Dev

如何使等高线图叠加在底图上

来自分类Dev

将构成等高线图矩阵的数据点覆盖在MATLAB中的同一图上

来自分类Dev

Python Matplotlib等高线图中的非线性缩放

来自分类Dev

Matlab:用等高线填充等高线图

来自分类Dev

多元高斯的等高线图

来自分类Dev

如何在matplotlib imshow等高线图的顶部显示数据点?

来自分类Dev

填充matplotlib等高线图

来自分类Dev

填充matplotlib等高线图

来自分类Dev

Matplotlib:等高线图的数据三次插值(或FIT)

来自分类Dev

八度等高线图

来自分类Dev

将数据重新排列到等高线图的矩阵中

来自分类Dev

等高线图x标记

来自分类Dev

等高线图例-Matplotlib

来自分类Dev

将构成等高线图矩阵的数据点覆盖在MATLAB的同一图上

来自分类Dev

Matlab:创建与SigmaPlot类似的等高线图/图像

来自分类Dev

Matlab:用等高线填充等高线图

来自分类Dev

Gnuplot-在2D等高线图上绘制数据点

来自分类Dev

使用函数绘制等高线图

来自分类Dev

如何使用ggplot将实际数据点放在等高线图上?

来自分类Dev

坏等高线图

来自分类Dev

条件等高线图

来自分类Dev

Gnuplot - 在二维等高线图上绘制数据点

来自分类Dev

平滑边缘等高线图

来自分类Dev

将不同位置的数据绘制为等高线图

来自分类Dev

散景中的等高线图