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

5
我正在使用Oxyplot HeatMapSeries来表示一些图形数据。 对于一个新应用程序,我需要用等值面来表示数据,看起来像这样:enter image description here 一些相关的想法:
  • 我知道ContourSeries可以绘制等值线,但我找不到任何选项允许我填补线之间的空隙。 这个选项存在吗?

  • 我知道HeatMapSeries可以在ContourSeries下显示,这样我就可以得到类似的结果,但它不符合我们的需求。enter image description here

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

如果有其他解决方案,请告诉我!
提前感谢!
1个回答

0

我正在评估Oxyplot是否满足我的需求,这个问题让我很感兴趣...从ContourSeries源代码来看,它似乎只用于查找和渲染等高线,而不是填充线之间的区域。观察AreaSeries,我认为您不能仅仅向其提供等高线,因为它期望两组点,当连接端点时创建简单的闭合多边形。我最好的猜测是对数据进行“栅格化”,以便将每个数据点四舍五入到最近的等高线水平,然后在等高线下绘制该栅格化数据的热图。默认情况下,ContourSeries似乎会计算跨越数据的20个级别的级别步骤。

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

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

我目前无法运行OxyPlot来测试,但我想分享一下我从源代码和有限的文档中获取到的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接