我有一些不平滑的等高线图需要进行平滑处理。我需要在不丢失任何等高线的情况下将它们平滑处理。我已经参考了这些 SO 的问题,但它们并没有完全提供解决方案。在没有任何滤波器的情况下,我的图表如下所示:
我考虑了两种平滑轮廓线的方法。
1.通过
2.仅对大于某个值(例如5 * 10 -6)的数据应用高斯滤波器。这很容易做到(循环遍历数据数组,并从原始集合中取出值大于截止值的值,从过滤集合中取出值小于等于截止值的值),但似乎相当任意且难以证明。
我想做类似第一种选择的事情,但它似乎有点像一个hack。什么是平滑这些轮廓图的最佳方法?
scipy.ndimage.gaussian_filter(z, 2)
),它会平滑绘图,但是内部轮廓会丢失。
我考虑了两种平滑轮廓线的方法。
1.通过
contour_object.collections[col_index].get_paths()[path_index].vertices
获取每个轮廓线坐标并对其进行平滑/重新绘制。这似乎是可能的,但不够优雅,而且我不确定从哪里开始。2.仅对大于某个值(例如5 * 10 -6)的数据应用高斯滤波器。这很容易做到(循环遍历数据数组,并从原始集合中取出值大于截止值的值,从过滤集合中取出值小于等于截止值的值),但似乎相当任意且难以证明。
我想做类似第一种选择的事情,但它似乎有点像一个hack。什么是平滑这些轮廓图的最佳方法?