开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 5763|回复: 0

LightningChart数据可视化工具使用篇28-IntensityGridSeries(强度网格)

[复制链接]

0

精华

10

贡献

2072

赞扬

帖子
141
软币
3968
在线时间
255 小时
注册时间
2021-1-21
发表于 2021-5-7 20:46:02 | 显示全部楼层 |阅读模式
IntensityGridSeries (强度网格)

演示示例: Heat map; Spectrogram; Intensity grid mouse control
IntensityGridSeries 能够可视化 M x N 的节点数组,并通过指定的值域调色板着色。节点之间的 颜色采用的是插值法。IntensityGridSeries 是在 X 和 Y 轴方向上均匀分布的矩形系列,可以渲染等高 线、等高线标签以及线框图等。

截屏2021-05-07 下午8.16.20.png
图: IntensityGridSeries 属性

截屏2021-05-07 下午8.17.36.png
图:IntensityGrid 系列展示了一幅热度图示。图例框显示了值域调色板。

数据以二维数组的形式存储在 Data 属性中。每个数组项的类型都为 IntensityPoint。每个节点的 数据值存储在 IntensityPoint 结构的 Value 字段中,从而表明应使用 ValueRangePalette 中的那种颜 色。
截屏2021-05-07 下午8.19.08.png
图:IntensityGridSeries 节点; SizeX = 5, SizeY = 7


节点距离自动计算,公式如下: 截屏2021-05-07 下午8.20.39.png
设置强度网格数据
  • RangeMinX RangeMaxX 属性设置 X 范围,对指定的 X 轴的最大值和最小值进行排序。
  • RangeMinY RangeMaxY 属性设置 Y 范围,对指定的 Y 轴的最大值和最小值进行排序。
  • 设置 SizeX SizeY 属性,将网格的尺寸规格指定为列和行。
  • 为每个节点设置 Value:

    用数据组索引的方法
    截屏2021-05-07 下午8.23.05.png

    另一种使用 SetDataValue 的方法
    截屏2021-05-07 下午8.24.01.png

    仅对现有网格设置值
    当数据快速改变,而 IntensityMesh 的几何形状,或者 IntensityGrid 系列的 SizeX 或 SizeY 没有 变化时,使用 SetValuesData 方法是最好的。因为它可接受 Double[][] 格式的数据组,能够快速滚动 或对行或列重新排序。特别是结合 PixelRendering 属性一起使用时,会是一种非常有效的高分辨率滚动光谱图可视化方法。注意,当使用 SetValuesData 设置的外部数据数组使 PixelRendering 处于 disabled 状态时,Data 属性不能为空。

    仅对现有网格设置颜色
    当数据快速改变,而 IntensityMesh 的几何形状,或者 IntensityGrid 系列的 SizeX 或 SizeY 没有 变化时,使用 SetColorsData 方法是最好的。因为它可接受 int[][]格式的值,例如 GPU 可直接接受的 ARGB 值。采用这种数据数列,能够快速滚动或对行或列重新排序。特别是结合 PixelRendering 属 性(参阅第 Error! Reference source not found.章节)一起使用时,会是一种非常有效的高分辨率滚 动光谱图可视化方法。注意,当使用 SetColorsData 设置的外部数据数组使 PixelRendering 处于 disabled 状态时,Data 属性不能为空。

    根据位图文件创建强度网格数据
    演示示例:热度图(Heat map)
    根据一幅位图图像创建一个面。可以用 SetHeightDataFromBitmap 方法来实现。通过系列 Data 数组属性可获得位图尺寸(如果没有使用反锯齿或重新采样)。就每个位图图像像素,分别对 Red、Green 和 Blue 值求和;和越大,该节点的数据值就越大;黑色和深色的值较低,而明亮和白色 的值较高。
    截屏2021-05-07 下午8.26.43.png
    图:源位图和计算所得的强度值数据。黑色区的值较低,明亮区的值较高

    填充样式
    使用 Fill 属性来选择填充样式。有以下可选项:
    • None: 此选项,不填充任何样式。采用线框网格或普通轮廓线时使用此项。
    • FromSurfacePoints: 使用数据属性节点的颜色。
    • Toned: 应用 ToneColor
    • Paletted





























开启 FullInterpolation 属性后,会在填充中使用增强型插值方法。注意这将更多地用到 CPU 和 GPU。使用全插值,填充效果会更好,但只能在数据数组大小相当小的情况下才能看到。

渲染为像素图
开启 PixelRendering 属性后,节点渲染为像素或矩形。这是一个非常高性能的渲染类型,例如 实时高分辨率热成像应用。注意,当选择此渲染模式时,许多其他选项将禁用,如等高线、线框和 插值。如果使用对数轴,对数变换只适用于系列的尖角,位图中的像素保持均匀的间隔,并且不进 行对数变换。






截屏2021-05-07 下午8.30.40.png

图:PixelRendering = true.

ValueRangePalette (值域调色板)
用 ValueRangePalette 属性,可为值的着色定义几个颜色阶。 ValueRangePalette 可用于:
  • Fill (参阅 Error! Reference source not found.章节)
  • Wireframe
  • Contour lines
    为高度调色板定义几个阶。每一阶都有一个高度值和相对应的颜色。
    注意! 可预编译并快速加载 20 个色阶。阶数越高,初始化图表时可能会有几秒钟的延迟。

    截屏2021-05-07 下午8.33.47.png
    图:左侧, IntensityGridSeries Fill 设置为 Paletted ,并且 Palette Type 设置为 Gradient;右侧, Palette Type 设置为 Uniform


    调色板用 MinValue、Type 和 Steps 属性来定义。Type 属性有两个选择: Uniform 和 Gradient。 前面的等高线调色板( 查看图例框)显示为:

    • MinValue: -50
    • Type: Uniform
    • Steps:

      • Steps[0]: MaxValue: -10, Color: Blue
      • Steps[1]: MaxValue: 10, Color: Teal
      • Steps[2]: MaxValue: 25, Color: Green
      • Steps[3]: MaxValue: 35, Color: Yellow
      • Steps[4]: MaxValue: 60, Color: Red
      • Steps[5]: MaxValue: 100, Color: White
        第一个阶值以下的值使用第一个阶的颜色着色。









Wireframe (线框)
WireframeType 选择线框样式。选项有:
  • None: 无线框
  • Wireframe: 纯色线框。用 WireframeLineStyle.Color 设置颜色。
  • WireframePaletted:在 ValueRangePalette 中为线框着色
  • WireframeSourcePointColored: 根据网格节点的颜色为线框着色
  • Dots: 在网格节点位置绘制实心色点
  • DotsPaletted: 在网格节点位置绘制点 ,并通过 ValueRangePalette 着色
  • DotsSourcePointColored: 在网格节点位置绘制点 ,根据网格节点的颜色来着色

线框的线条样式(颜色、宽度、图案)可以用 WireframeLineStyle 来编辑。

注意!仅当设置 WireframeLineStyle.Width = 1 且 WireframeLineStyle.Pattern = Solid 时,调色板
着色的线框线条和点才可用。


Contour lines 等高线
演示示例: Heatmap color spread; Contours with labels
设置填充和边框属性来使用等高线。通过设置 ContourLineType 属性,可以用不同的样式绘制等高线:

  • None: 不显示等高线
  • FastColorZones:线条绘制为细细的带状 。 适用于非常强的渲染,非常适合于持续更新或外
    形多样的曲面。陡峭值的变化以细线表示,而平缓坡度的高差以粗带表示。用 ContourLineStyle.Color 属性为每个线条定义采用同样的颜色。通过 FastContourZoneRange 属性可以设置带的宽度。值在 Y 轴范围内。
  • FastPalettedZones: FastColorZones 类似,但是要在 ValueRangePalette 选项中为线条着色)。
  • ColorLine: FastColorZones 类似,但是等高线是实际的线;渲染需要更长的时间,不建议 持续更新或动画表面采用。 用 ContourLineStyle.Width 属性可以调整线条的宽度。
  • PalettedLine: ColorLine 类似,但是要在 ValueRangePalette 选项中为线条着色。


截屏2021-05-07 下午8.39.31.png
图:左侧, ContourLineType = FastColorZones;右侧, ContourLineType = FastPalettedZones

截屏2021-05-07 下午8.40.42.png
图:左侧, ContourLineType = ColorLine;右侧, ContourLineType = PalettedLine

等高线标签




当等高线设置为可见时,可以在线路径上显示数值。
截屏2021-05-07 下午8.42.27.png
图:ContourLineLabels 属性及效果

用 LabelsNumberFormat 来自定义字符串格式化,例如设置小数位数。

遇到使用问题,关注Arction公众号可以跟官方技术支持在线聊天解决,技术支持这一块儿Lightningchart做的还是不错的。

顾问码.png

后续我会不断更新LightingChart更详细的使用方法,写文不易,还望多多回复关注支持!谢谢!

最新版V10 LightningChart下载地址:
猛击下载






















































回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-22 21:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表