我正在使用Oxyplot HeatMapSeries表示一些图形数据。
对于新应用程序,我需要用等值面表示数据,如下所示:
有关此的一些想法:
如果有人对解决方案有另一种方法,我会听到的!
提前致谢!
最佳答案
我正在评估 Oxyplot 是否能满足我的需求,这个问题让我很感兴趣……从 ContourSeries source code 来看,它似乎仅用于查找和渲染轮廓线,而不是填充线条之间的区域。看着 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 来测试事物,但我想我会分享我从源代码和有限文档中收集到的信息。
关于c# - 是否可以使用Oxyplot创建等值面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31426614/