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

gut*_*isg 5 c# contour heatmap xamarin oxyplot

我正在使用Oxyplot HeatMapSeries表示一些图形数据。对于新应用程序,我需要用等值面表示数据,如下所示:在此处输入图片说明

有关此的一些想法:

  • 我知道ContourSeries可以完成等值线,但找不到任何可以填补线条之间空白的选项。这个选项存在吗?

  • 我知道HeatMapSeries可以显示在contourSeries下,因此我可以获得类似的结果,但它不符合我们的需求。 在此处输入图片说明

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

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

提前致谢!

flu*_*ak7 0

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

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

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

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