大多数图表类型绘制在两个轴之间,水平轴和垂直轴,通常分别称为 X 轴和 Y 轴。通常 X 轴用于绘制类别,Y
轴用于绘制值,但在某些情况下(如条形图),Y 轴用作类别轴,而 X
轴用作数值轴。同样,根据数据,有时两个轴都用作值轴。请注意,饼图、旭日图或树状图等图表是一些例外,并且没有任何轴。
在 FlexChart 中,这两个轴由 AxisX 和 AxisY 属性表示,它们返回 Axis
类的对象。除了将图表与数据源绑定之外,FlexChart 还允许您将各个轴绑定到单独的数据源和字段,从而允许您显示与图表数据源中可用的轴标签不同的轴标签。
Vb.Net
'Passing data to FlexChart's AxisY
flexChart1.AxisY.DataSource = GetAxisBindinglabels()
'Setting which fields to bind to AxisY
flexChart1.AxisY.Binding = "Value,Text"
C# |
//Passing data to FlexChart's AxisY flexChart1.AxisY.DataSource = GetAxisBindinglabels(); //Setting which fields to bind to AxisY flexChart1.AxisY.Binding = "Value,Text"; |
默认情况下,弹性图表在图表底部呈现 X 轴,在左侧呈现 Y 轴。但是,您可以将这些轴的位置更改为顶部、右侧、中心等。通过设置接受位置枚举中的值的 Position 属性。将此属性设置为“None”将隐藏轴本身。
Vb.Net |
' Displaying the Y axis on right hand side
flexChart1.AxisY.Position = Position.Right |
C# |
//Displaying the Y axis on right hand side
flexChart1.AxisY.Position = Position.Right; |
默认情况下,FlexChart 为 X 轴显示轴线,但对 Y 轴显示的轴线不同。若要切换轴线的可见性,需要设置目标轴的 AxisLine 属性。
Vb.Net |
' Showing axis line for Y-axis, by default it is hidden flexChart1.AxisY.AxisLine = true |
C# |
//Showing axis line for Y-axis, by default it is hidden flexChart1.AxisY.AxisLine = true; |
FlexChart 还允许您分别使用“最小值”和“最大值”属性设置可在轴上绘制的最小值和最大值。这有助于您通过仅绘制目标数据来分析数据子集,而不是将图表绘图区域与整个数据集混杂在一起。Max和Min属性的默认值为NaN,会自动根据绑定的数据自行设计值的大小。
Vb.Net |
' Setting axis bounds
flexChart1.AxisY.Max = 150
flexChart1.AxisY.Min = 90 |
C# |
//Setting axis bounds
flexChart1.AxisY.Max = 150;
flexChart1.AxisY.Min = 90; |
在某些情况下,翻转轴以开始从最大值到最小值显示值有助于更好地呈现数据,例如各种瀑布的高度或不同水平的海洋深度。弹性图表允许您通过将“Reversed(反转)”属性设置为 True 来显示反转轴。
Vb.Net
' Flip the Y-axis to display minimum value on top and maximum towards origin
flexChart1.AxisY.Reversed = true
C# |
//Flip the Y-axis to display minimum value on top and maximum towards origin flexChart1.AxisY.Reversed = true; |
除了默认的 X 轴和 Y 轴外,FlexChart还允许您在同一图表中显示多个轴。这允许您处理具有明显不同值范围的多个图系。若要向图表添加辅助轴,需要为具有不同数据值的图系添加新轴。
Vb.Net |
'Creating and adding first Series to chart and binding it (AxisY) to 'HighTemp' field of Data 'Name property specifies the string to be displayed corresponding to this Series in Legend 'With more than one series setting ChartType (default:column) is mandatory 'Adding axis to the series 'Set where to show the AxisLine relative to PlotArea 'Title property specifies the string to be displayed along AxisLine 'Whether or not to show the AxisLine Dim series1 As Series = New Series() With { .Name = "Temperature(°C)", .Binding = "HighTemp", .ChartType = ChartType.Column, .AxisY = New Axis() With { .Position = Position.Left, .Title = "Temperature (°C)", .AxisLine = True } } flexChart1.Series.Add(series1) 'Creating and adding second Series to chart and binding it (AxisY) to 'Precipitation' field of Data 'Name property specifies the string to be displayed corresponding to this Series in Legend 'With more than one series setting ChartType (default:column) is mandatory 'Adding axis to the series 'Set where to show the AxisLine relative to PlotArea 'Title property specifies the string to be displayed along AxisLine 'Whether or not to show the AxisLine Dim series2 As Series = New Series() With { .Name = "Precipitation(mm)", .Binding = "Precipitation", .ChartType = ChartType.LineSymbols, .AxisY = New Axis() With { .Position = Position.Right, .Title = "Precipitation (mm)", .AxisLine = True } } flexChart1.Series.Add(series2) |
C# |
//Creating and adding first Series to chart and binding it (AxisY) to 'HighTemp' field of Data var series1 = new Series() { //Name property specifies the string to be displayed corresponding to this Series in Legend Name = "Temperature(°C)", Binding = "HighTemp", //With more than one series setting ChartType (default:column) is mandatory ChartType = ChartType.Column, //Adding axis to the series AxisY = new Axis() { //Set where to show the AxisLine relative to PlotArea Position = Position.Left, //Title property specifies the string to be displayed along AxisLine Title = "Temperature (°C)", //Whether or not to show the AxisLine AxisLine = true, } }; flexChart1.Series.Add(series1); //Creating and adding second Series to chart and binding it (AxisY) to 'Precipitation' field of Data var series2 = new Series() { //Name property specifies the string to be displayed corresponding to this Series in Legend Name = "Precipitation(mm)", Binding = "Precipitation", //With more than one series setting ChartType (default:column) is mandatory ChartType = ChartType.LineSymbols, //Adding axis to the series AxisY = new Axis() { //Set where to show the AxisLine relative to PlotArea Position = Position.Right, //Title property specifies the string to be displayed along AxisLine Title = "Precipitation (mm)", //Whether or not to show the AxisLine AxisLine = true, }, }; flexChart1.Series.Add(series2); |
FlexChart 允许您自定义轴线,并使图表看起来很有吸引力,并与应用程序 UI 的其余部分同步。FlexChart 的 Axis 类提供了 Style 属性,可以访问该属性来更改轴的描边颜色、描边宽度、线条图案等。
Vb.Net
'Setting color to be used for stroke
flexChart1.AxisX.Style.StrokeColor = Color.DarkBlue
'Setting width to be used for stroke width
flexChart1.AxisX.Style.StrokeWidth = 1
'Setting pattern to be used line pattern
flexChart1.AxisX.Style.LinePattern = LinePatternEnum.DashDot
C# |
//Setting color to be used for stroke flexChart1.AxisX.Style.StrokeColor = Color.DarkBlue; //Setting width to be used for stroke width flexChart1.AxisX.Style.StrokeWidth = 1; //Setting pattern to be used line pattern flexChart1.AxisX.Style.LinePattern = LinePatternEnum.DashDot; |
轴元素:讨论轴元素及其自定义。
轴标签:讨论轴标签、其自定义以及处理其重叠的选项。
轴分组:讨论各种类型的轴分组:分类轴、数字轴和日期时间轴分组