IntensityGridSeries (强度网格)
演示示例: Heat map; Spectrogram; Intensity grid mouse control IntensityGridSeries 能够可视化 M x N 的节点数组,并通过指定的值域调色板着色。节点之间的 颜色采用的是插值法。IntensityGridSeries 是在 X 和 Y 轴方向上均匀分布的矩形系列,可以渲染等高 线、等高线标签以及线框图等。
图: IntensityGridSeries 属性
图:IntensityGrid 系列展示了一幅热度图示。图例框显示了值域调色板。
数据以二维数组的形式存储在 Data 属性中。每个数组项的类型都为 IntensityPoint。每个节点的 数据值存储在 IntensityPoint 结构的 Value 字段中,从而表明应使用 ValueRangePalette 中的那种颜 色。 图:IntensityGridSeries 节点; SizeX = 5, SizeY = 7
节点距离自动计算,公式如下:
设置强度网格数据 - 用 RangeMinX 和 RangeMaxX 属性设置 X 范围,对指定的 X 轴的最大值和最小值进行排序。
- 用 RangeMinY 和 RangeMaxY 属性设置 Y 范围,对指定的 Y 轴的最大值和最小值进行排序。
- 设置 SizeX 和 SizeY 属性,将网格的尺寸规格指定为列和行。
为每个节点设置 Value:
用数据组索引的方法
另一种使用 SetDataValue 的方法
仅对现有网格设置值 当数据快速改变,而 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 值求和;和越大,该节点的数据值就越大;黑色和深色的值较低,而明亮和白色 的值较高。 图:源位图和计算所得的强度值数据。黑色区的值较低,明亮区的值较高
填充样式
使用 Fill 属性来选择填充样式。有以下可选项:
- None: 此选项,不填充任何样式。采用线框网格或普通轮廓线时使用此项。
- FromSurfacePoints: 使用数据属性节点的颜色。
- Toned: 应用 ToneColor
- Paletted
开启 FullInterpolation 属性后,会在填充中使用增强型插值方法。注意这将更多地用到 CPU 和 GPU。使用全插值,填充效果会更好,但只能在数据数组大小相当小的情况下才能看到。
渲染为像素图 开启 PixelRendering 属性后,节点渲染为像素或矩形。这是一个非常高性能的渲染类型,例如 实时高分辨率热成像应用。注意,当选择此渲染模式时,许多其他选项将禁用,如等高线、线框和 插值。如果使用对数轴,对数变换只适用于系列的尖角,位图中的像素保持均匀的间隔,并且不进 行对数变换。
图:PixelRendering = true.
ValueRangePalette (值域调色板) 用 ValueRangePalette 属性,可为值的着色定义几个颜色阶。 ValueRangePalette 可用于: - Fill (参阅 Error! Reference source not found.章节)
- Wireframe
Contour lines 为高度调色板定义几个阶。每一阶都有一个高度值和相对应的颜色。
注意! 可预编译并快速加载 20 个色阶。阶数越高,初始化图表时可能会有几秒钟的延迟。
图:左侧, 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 选项中为线条着色。
图:左侧, ContourLineType = FastColorZones;右侧, ContourLineType = FastPalettedZones
图:左侧, ContourLineType = ColorLine;右侧, ContourLineType = PalettedLine
等高线标签
当等高线设置为可见时,可以在线路径上显示数值。 图:ContourLineLabels 属性及效果
用 LabelsNumberFormat 来自定义字符串格式化,例如设置小数位数。
遇到使用问题,关注Arction公众号可以跟官方技术支持在线聊天解决,技术支持这一块儿Lightningchart做的还是不错的。
后续我会不断更新LightingChart更详细的使用方法,写文不易,还望多多回复关注支持!谢谢!
最新版V10 LightningChart下载地址:猛击下载
|