是否可以使用Oxyplot创建等值面?

时间:2015-07-15 09:31:35

标签: c# xamarin heatmap contour oxyplot

我使用Oxyplot HeatMapSeries来表示一些图形数据。 对于新的应用程序,我需要使用isosurfaces表示数据,如下所示:enter image description here

有关此的一些想法:

  • 我知道ContourSeries可以使用isolines,但我找不到任何可以填补行之间间隙的选项。该选项是否存在?

  • 我知道HeatMapSeries可以在contourSeries下显示,所以我可以得到类似的结果,但它不符合我们的需要。 enter image description here

  • 另一种选择是限制HeatMapSeries颜色并消除插值。这可能吗?

如果有人对解决方案有其他方法,我会听到它!

提前致谢!

1 个答案:

答案 0 :(得分:0)

我正在评估Oxyplot是否能满足我的需求而这个问题让我感兴趣...从ContourSeries source code看,它似乎只是用于寻找和渲染轮廓线,而不是填充之间的区域线条。看AreaSeries,我不认为你可以只提供它的轮廓,因为它期望两组点,当连接两端时,创建一个简单的闭合多边形。我最好的猜测是“栅格化”您的数据,以便将每个数据点四舍五入到最近的轮廓级别,然后在轮廓下绘制该栅格化数据的热图。 ContourSeries似乎计算默认情况下在数据上执行20个级别的级别步骤。

我基于步进值进行栅格化的快捷方式是将数据除以所需的级别步骤,然后使用Math.Floor截断数字。

看看HeatMapSeries,看起来你可以尝试关闭插值,使用HeatMapRenderMethod.Rectangles渲染方法,或者提供更少步骤的LinearColorAxis并让渲染进行光栅化?可以在OxyPalettes source:BlueWhiteRed31,Hot64,Hue64,BlackWhiteRed,BlueWhiteRed,Cool,Gray,Hot,Hue,HueDistinct,Jet和Rainbow中看到可用于LinearColorAxis的选项板。

我目前无法运行OxyPlot进行测试,但我想我会从源代码和有限的文档中分享我可以收集的信息。