本文已参与「新人创作礼」活动,一起开启掘金创作之路。
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:
用数据组索引的方法
for (int nodeIndexX = 0; nodeIndexX < columnCount; nodeIndexX ++)
{
for (int nodeIndexY = 0; nodeIndexY < rowCount; nodeIndexY ++)
{
intensityValue =//一些高度值
gridSeries.Data[iNodeX, iNodeY].Value = intensityValue;
}
}
gridSeries.InvalidateData(); //准备好新值后通知刷新
另一种使用SetDataValue的方法
for (int nodeIndexX = 0; nodeIndexX < columnCount; nodeIndexX ++)
{
for (int nodeIndexY = 0; nodeIndexY < rowCount; nodeIndexY ++)
{
intensityValue =//一些高度值
gridSeries.SetDataValue(nodeIndexX, nodeIndexY,
0, // X值与网格无关
0, //Y值与网格无关
intensityValue,
Color.Green); //本例中没有使用源点颜色,所以这里用什么颜色都行
}
}
gridSeries.InvalidateData(); //准备好新值后通知刷新
仅对现有网格设置值
当数据快速改变,而IntensityMesh的几何形状,或者IntensityGrid系列的 SizeX 或 SizeY 没有变化时,使用SetValuesData 方法是最好的。因为它可接受Double[][] 格式的数据组,能够快速滚动或对行或列重新排序。特别是结合 PixelRendering 属性(参阅第Error! Reference source not found.章节)一起使用时,会是一种非常有效的高分辨率滚动光谱图可视化方法。注意,当使用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 = PalettedLineContourLineType = ColorLine;
等高线标签
当等高线设置为可见时,可以在线路径上显示数值。
图:ContourLineLabels属性及效果
用 LabelsNumberFormat 来自定义字符串格式化,例如设置小数位数。
关于LightningChart数据可视化图形控件使用篇19-IntensityGridSeries 强度网格 (线集)章节就分享到这里了。
如果在实际应用中遇到技术问题或需要帮助,可以添加下方微信号联系官方技术支持。
微信号:lightningchart_china
如果您想进一步使用LightningChart数据可视化图形控件,请添加后回复“学习”可免费领取一套全功能版LightningChart数据可视化控件。
后续我会不断更新LightingChart更详细的使用方法,写文不易,还望多多回复关注支持!谢谢!
最新版V10 LightningChart下载地址:猛击下载
今天的文章LightningChart数据可视化图形控件使用篇19-IntensityGridSeries 强度网格分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/22601.html