我正在使用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