我正在使用Matplotlib创建等高线图。我有一个多维数组中的所有数据 。它宽约2000厘米,宽约12厘米。所以它基本上是12列表的长度为2000的列表。我有等高线图 工作正常,但我需要平滑数据。我读了很多 的例子。不幸的是,我没有数学背景知道什么是 与他们进行。使用Matplotlib平滑轮廓图中的数据
那么,我该如何平滑这些数据呢?我有一个例子,我的图形看起来像 ,我想让它看起来更像。
这是我的图:
我希望它看起来更类似于过什么:
我有什么办法光滑如在第二等高线图情节?
我正在使用的数据是从XML文件中提取的。但是,我将显示阵列的 部分的输出。由于阵列中的每个元素的长度大约为2000个,因此I 只会显示摘录。
这里有一个例子:
[27.899999999999999, 27.899999999999999, 27.899999999999999, 27.899999999999999,
28.0, 27.899999999999999, 27.899999999999999, 28.100000000000001, 28.100000000000001,
28.100000000000001, 28.100000000000001, 28.100000000000001, 28.100000000000001,
28.100000000000001, 28.100000000000001, 28.0, 28.100000000000001, 28.100000000000001,
28.0, 28.100000000000001, 28.100000000000001, 28.100000000000001, 28.100000000000001,
28.100000000000001, 28.100000000000001, 28.100000000000001, 28.100000000000001,
28.100000000000001, 28.100000000000001, 28.100000000000001, 28.100000000000001,
28.100000000000001, 28.100000000000001, 28.100000000000001, 28.100000000000001,
28.100000000000001, 28.100000000000001, 28.0, 27.899999999999999, 28.0,
27.899999999999999, 27.800000000000001, 27.899999999999999, 27.800000000000001,
27.800000000000001, 27.800000000000001, 27.899999999999999, 27.899999999999999, 28.0,
27.800000000000001, 27.800000000000001, 27.800000000000001, 27.899999999999999,
27.899999999999999, 27.899999999999999, 27.899999999999999, 28.0, 28.0, 28.0, 28.0,
28.0, 28.0, 28.0, 28.0, 27.899999999999999, 28.0, 28.0, 28.0, 28.0, 28.0,
28.100000000000001, 28.0, 28.0, 28.100000000000001, 28.199999999999999,
28.300000000000001, 28.300000000000001, 28.300000000000001, 28.300000000000001,
28.300000000000001, 28.399999999999999, 28.300000000000001, 28.300000000000001,
28.300000000000001, 28.300000000000001, 28.300000000000001, 28.300000000000001,
28.399999999999999, 28.399999999999999, 28.399999999999999, 28.399999999999999,
28.399999999999999, 28.300000000000001, 28.399999999999999, 28.5, 28.399999999999999,
28.399999999999999, 28.399999999999999, 28.399999999999999]
请记住,这仅仅是一个摘录。数据的维度是12行 1959列。列根据从XML 文件导入的数据而变化。在使用Gaussian_filter之后,我可以查看这些值,并且他们会更改 。但是,这些变化并不足以影响等值线图。
我曾经看过这个例子。但是,我无法得到这个在我的阵列上工作。我应该注意到我的数组是一个python列表,而不是一个numpy数组。这会造成问题吗?如果是这样,将python列表转换为numpy数组最简单的方法是什么? – dman87
嗯,实际上ndimage.gaussian_filter可以在列表清单上运行得很好。 (例如,'ndimage.gaussian_filter(Z.tolist())'起作用。)问题必须在其他地方。很难说没有看到数据。什么不工作意味着什么?是否引发异常?或者结果看起来不正确? – unutbu
对不起,我应该更具体。我相信这是列表中的数据是字符串的问题。虽然contour()函数并没有抱怨它。 我得到它没有错误的工作。但是,它根本不会改变轮廓的输出()。 – dman87