本文已参与「新人创作礼」活动,一起开启掘金创作之路。
轴布局选项
一般用以调整轴位置以及自动边距等的属性可以在ViewXY.AxisLayout属性及子属性中找到。
图:AxisLayout 属性树
设置轴位置的方法
自动布置X轴
演示示例:自动布置轴(Automatic axis placements); 数个轴的情况(Several axes) XAxisAutoPlacement 控制着如何垂直放置X轴。
chart.ViewXY.AxisLayout.XAxisAutoPlacement = XAxisAutoPlacement.AllBottom;
图 6-4. XAxisAutoPlacement = AllBottom;添加的三个 X轴都置于图下方
图:XAxisAutoPlacement = AllTop;所有X轴都置于图上方
图:XAxisAutoPlacement = BottomThenTop;X轴分散在图的上下方,从底部开始交替分散在两边。
图:XAxisAutoPlacement = TopThenBottolm;轴分布在图的上下方,从顶部开始交替分散在两边。
图:XAxisAutoPlacement = Explicit;X轴出现在显式选择的那一侧。 X轴1(XAxis1)的 ExplicitAutoPlacementSide 属性设置为底部(Bottom),而X轴2和3(XAxis2 和 XAxis3)为顶部(Top)。
图:XAxisAutoPlacement = Off;禁用自动布置轴,每个轴的位置(Position)和对齐(Alignment)属性各自分别应用。第一条轴 Position = 0,第二条轴 Position = 50,第三条轴Position = 100
自动布置Y轴
演示实例:Y轴布局(Y axis layouts);自动布置轴(Automatic axis placements);数个轴的情况(Several axes) YAxisAutoPlacement控制着如何水平放置Y轴。
chart.ViewXY.AxisLayout.YAxisAutoPlacement = YAxisAutoPlacement.AllLeft;
图:YAxisAutoPlacement = AllLeft;添加的三个Y轴都置于图左侧。
图:YAxisAutoPlacement = AllRight;所有Y轴都置于图右侧。
图:YAxisAutoPlacement = LeftThenRight;Y轴分布在图左右两侧,从左侧开始交替分散在两侧。
图:YAxisAutoPlacement = RightThenLeft;Y轴分布在图左右两侧,从右侧开始交替分散在两侧。
图:YAxisAutoPlacement = Explicit;Y轴出现在显式选择的那一侧。Y轴1和2(YAxis1 和 YAxis2)的 ExplicitAutoPlacementSide属性设置为左侧(Left),而Y轴3为右侧(Right)。
图:YAxisAutoPlacement = Off;禁用自动布置轴,每个轴的位置(Position)和对齐(Alignment)属性各自分别应用。第一条轴 Position = 0,第二条轴 Position = 20,第三条轴Position = 80
图形段(Graph segments)及其中的Y轴位置
如果定义有数个Y轴,它们可以以三种不同的方式垂直排列: Layered(层叠式)、Stacked(叠置式) 和 Segmented(分段式)。通过ViewXY.AxisLayout.YAxesLayout属性可以对其进行选择。
层叠式(Layered)
演示实例:Y轴布局(Y axis layouts);自动布置轴(Automatic axis placements)
在Layered 视图模式中,所有的Y轴都是从图的顶部开始,延伸到图的底部。Y轴和与其关联的系列在同一个垂直空间里。
chart.ViewXY.AxisLayout.YAxesLayout = YAxesLayout.Layered;
图:4 个Y轴设定为YAxesLayout = Layered 时的示例视图
叠置式(Stacked )
演示实例:Y轴布局(Y axis layouts);多信道游标追踪(Multi-channel cursor tracking);系列中数据中断(Data breaking in series)
在Stacked 视图中,每条Y轴都有自己的垂直空间。所有Y轴都等高。
chart.ViewXY.AxisLayout.YAxesLayout = YAxesLayout.Stacked;
图: 4 条Y轴在设置为 YAxesLayout = Stacked时的示例视图
分段式(Segmented)
演示示例:Y轴布局(Y axis layouts);多图例情况(Multiple legends);分割器分段(Segments with splitters)
在Segmented 视图中,垂直空间分割成了数个段(Segments)。每个段都可以包含数个Y轴。每个段的相对高度可以设置,同时,一个段内的所有Y轴都具有与该段一样的高度。
chart.ViewXY.AxisLayout.YAxesLayout = YAxesLayout.Segmented;
Segments 必须在 AxisLayout.Segments 集合中创建。首先添加的段要置于图表的底部。一个段只有一个属性,即Height;它是一个相对于其他段的相对高度。因为段的比例需要随着图表的尺寸来调整,所以段的高度不是以屏幕像素来规定的。
// 添加2个段,第二个段的高度是第一个段的2倍
chart.ViewXY.AxisLayout.Segments.Add(new YAxisSegment());
chart.ViewXY.AxisLayout.Segments.Add(new YAxisSegment());
chart.ViewXY.AxisLayout.Segments[0].Height = 1;
chart.ViewXY.AxisLayout.Segments[0].Height = 2;
通过设置yAxis.SegmentIndex属性可以为Y轴分配一个段。SegmentIndex 则为AxisLayout.Segments 集合中的索引。
chart.ViewXY.YAxes[0].SegmentIndex = 0;
chart.ViewXY.YAxes[1].SegmentIndex = 1;
图:4个 Y轴在设置为YAxesLayout = Segmented时的示例视图。前两个段的高度设置为 Height = 1,最后一个段的高度为2.5。 Axis1.SegmentIndex = 0, Axis2.SegmentIndex = 1, Axis3 与 Axis4.SegmentIndex = 3.
当选择Stacked或Segmented视图后,利用ViewXY.AxisLayout.SegmentsGap属性可以调整各图形段之间的垂直距离。
chart.ViewXY.AxisLayout.SegmentsGap = 10; // 每个段之间设置10像素间距
如果定义了许多的Y轴,应启用AutoShrinkSegmentsGap 属性来自动缩减间距。这样,在绘制每条Y轴时至少都会有一些垂直距离。
chart.ViewXY.AxisLayout.AutoShrinkSegmentsGap = false;
如果需要实现段特定的用户界面逻辑,使用ViewXY.GetGraphSegmentInfo()–method能找到图形段的边界。
// 获取每个段的顶部与底部坐标
float[] topCoords = chart.ViewXY.GetGraphSegmentInfo().SegmentTops;
float[] bottomCoords = chart.ViewXY.GetGraphSegmentInfo().SegmentBottoms;
轴网格带(Axis grid strips)
演示示例:历史数据回顾(Historic data review);缩放条图表(Zoom bar chart)
轴网格(划分)间隔可以在图形背景上显示为填充效果。通过ViewXY.AxisLayout.AxisGridStrips对X进行设置,可在X轴设置网格带。另外,通过AxisGridStrips对Y进行设置,可在Y轴设置网格带。用Both选项可以对X和Y轴都设置网格带,而用None则可不显示任何网格带。
chart.ViewXY.AxisLayout.AxisGridStrips = XYAxisGridStrips.X;
当使用多条X轴时,可以使用XGridStripAxisIndex 对X轴设置网格带。不过,一次只能对一条X轴进行设置。
chart.ViewXY.AxisLayout.XGridStripAxisIndex = 0;
当使用Layered YAxisLayout选项时,可以通过YGridStripAxisIndexLayered 对Y轴设置网格带。如果是Stacked 布局,每条Y轴都具有网格带。
chart.ViewXY.AxisLayout.YGridStripAxisIndexLayered = 0;
在X轴或Y轴对象的GridStripColor 属性中,可以对网格带的颜色进行调整。
chart.ViewXY.YAxes[0].GridStripColor = Color.FromArgb(80, 0, 0, 100);
图:AxisGridStrips = None.
图:AxisGridStrips =X.
图:AxisGridStrips = Y.
图:AxisGridStrips = Both. GridStripColor 同样在Y轴上也发生了变化。
其他AxisLayout选项
启用XAxisAutoPlacement 或 YAxisAutoPlacement 后,用AutoAdjustAxisGap可以设置两个相邻轴区域之间的间距(以像素为单位)。
chart.ViewXY.AxisLayout.XAxisAutoPlacement = XAxisAutoPlacement.AllBottom;
chart.ViewXY.AxisLayout.AutoAdjustAxisGap = 10;
启用 XAxisTitleAutoPlacement (或YAxisTitleAutoPlacement)后,轴的标题距离根据数值标签的长度、轴和刻度线的对齐选项自动计算。如果禁用了XAxisTitleAutoPlacement (或YAxisTitleAutoPlacement),则用轴对象属性的Title.DistanceToAxis设置标题到轴线的距离。
chart.ViewXY.AxisLayout.XAxisTitleAutoPlacement = false;
chart.ViewXY.XAxis[0].Title.DistanceToAxis = -20;
关于LightningChart数据可视化图形控件使用篇5-ViewXY之轴布局选项章节就分享到这里了。
如果在实际应用中遇到技术问题或需要帮助,可以添加下方微信号联系官方技术支持。
微信号:lightningchart_china
如果您想进一步使用LightningChart数据可视化图形控件,请添加后回复“学习”可免费领取一套全功能版LightningChart数据可视化控件。
后续我会不断更新LightingChart更详细的使用方法,写文不易,还望多多回复关注支持!谢谢!
最新版V10 LightningChart下载地址:猛击下载