编程语言
首页 > 编程语言> > c# – 是否可以使用Oxyplot创建等值面?

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

作者:互联网

我正在使用Oxyplot HeatMapSeries来表示一些图形数据.
对于新的应用程序,我需要使用isosurfaces表示数据,如下所示:

关于这个的一些想法:

>我知道ContourSeries可以使用isolines,但我找不到任何允许我填补行之间间隙的选项.这个选项存在吗?
>我知道HeatMapSeries可以在contourSeries下显示,所以我可以得到类似的结果,但它不符合我们的需要. .
>另一个选择是限制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,xamarin,heatmap,contour,oxyplot
来源: https://codeday.me/bug/20190711/1434336.html