一、增加Y轴辅助轴
//chartControl 图表 ;series 系列点 ;title 标题名 ; defaultBoolean 是或否
public static SecondaryAxisY CreateBarAxisY(ChartControl chartControl, Series series, string title,DefaultBoolean defaultBoolean)
{
SecondaryAxisY myAxis = new SecondaryAxisY(series.Name); //声明新的第二辅助轴
((XYDiagram)chartControl.Diagram).SecondaryAxesY.Add(myAxis);
((BarSeriesView)series.View).AxisY = myAxis;//如果在这传入的是Line类型的需要绑定LineSeriesView类型,可以进行相应的判断
myAxis.Title.Text = title;
myAxis.Title.Visibility = defaultBoolean;//标题是否显示
myAxis.Alignment = AxisAlignment.Far;//辅助轴的位置
myAxis.Title.Position = AxisTitlePosition.Outside;
Color color = series.View.Color;//设置坐标的颜色和图表线条颜色一致
myAxis.Title.TextColor = color;
myAxis.Label.TextColor = color;
myAxis.Color = color;
myAxis.WholeRange.MaxValue = 100;//显示Y轴标签显示值的大小,不设置会自动
myAxis.WholeRange.MinValue = 0;
return myAxis;
}
二、增加X轴辅助轴
与刚才新增Y 轴辅助轴的方式相同,知识把第一句声明改成X轴的即可,
SecondaryAxisX myAxis = new SecondaryAxisX(series.Name);
注意:X轴不能进行Y轴方法的限值大小,且X轴的标签不能为空
如果X轴辅助轴想要在原X轴的基础上绑定数值,可以参考如下方法,(可以进行循环操作)
CustomAxisLabel customAxisLabel1 = new CustomAxisLabel();//声明自定义轴标签
customAxisLabel1.AxisValueSerializable = series0.Points[point].Argument;//辅助轴绑定原轴的标签值
customAxisLabel1.Name = step[i];//辅助轴显示的值
myAxis.CustomLabels.AddRange(new CustomAxisLabel[] { customAxisLabel1 });//辅助轴添加绑定值
三、增加新的窗格Panes
XYDiagram diagram = (XYDiagram)chartControl1.Diagram;
//新增新的窗格
diagram.Panes.Add(new XYDiagramPane("My Pane"));
//找到需要绑定到新窗格中的Serise
PointSeriesView myView1 = (PointSeriesView)series1.View;
LineSeriesView myView3 = (LineSeriesView)series3.View;
myView1.Pane = diagram.Panes[0];
myView3.Pane = diagram.Panes[0];
diagram.PaneDistance = 10;//窗格间距离
diagram.PaneLayout.AutoLayoutMode = PaneAutoLayoutMode.Linear; //自动布局的格式
diagram.PaneLayout.Direction = PaneLayoutDirection.Vertical;//窗格间排列的方式,此处是竖排,还可以进行横排
//可以进行X、Y轴的辅助轴绑定窗格,如果不声明将使用默认的轴
diagram.SecondaryAxesX.Add(new SecondaryAxisX("My Axis X"));
diagram.SecondaryAxesY.Add(new SecondaryAxisY("My Axis Y"));
diagram.SecondaryAxesX[0].Alignment = AxisAlignment.Near;
diagram.SecondaryAxesY[0].Alignment = AxisAlignment.Near;
diagram.SecondaryAxesY[0].GridLines.Visible = true;
diagram.SecondaryAxesY[0].Label.TextPattern = "{V:#0.000}";
//将Serise和X、Y轴进行绑定,注意:如果声明了辅助轴但是serise没有绑定辅助轴,serise还是会使用默认的轴,此时第二窗格会出现两条轴
myView1.AxisX = diagram.SecondaryAxesX[0];
myView1.AxisY = diagram.SecondaryAxesY[0];
myView3.AxisX = diagram.SecondaryAxesX[0];
myView3.AxisY = diagram.SecondaryAxesY[0];
//如果想要更详细的绑定和使用,可以参考DEV官方文档
四、添加常量线
//chart 图表;linevaule 常量线值;dashstyle 虚实线;thickness 线的宽度;legendtext 常量线图例名;titletext 标题名;color 常量线颜色;titlecolor 标题颜色
public static void ConstantLineStyle(ChartControl chart,double linevaule, DashStyle dashstyle,int thickness
,string legendtext,string titletext, Color color,Color titlecolor)
{
ConstantLine constantLine1 = new ConstantLine();//new ConstantLine("Constant Line 1");
XYDiagram diagram = chart.Diagram as XYDiagram;
diagram.AxisY.ConstantLines.Add(constantLine1);
// Define its axis value.
//常量线轴值
constantLine1.AxisValue = linevaule;
// Customize the behavior of the constant line.
//自定义常量线的行为
constantLine1.Visible = true;
constantLine1.ShowInLegend = true;
constantLine1.LegendText = legendtext;
constantLine1.ShowBehind = true;
// Customize the constant line's title.
//自定义常量线的图表中标题
constantLine1.Title.Visible = true;
constantLine1.Title.Text = titletext;
constantLine1.Title.TextColor = titlecolor;
constantLine1.Title.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.False;
constantLine1.Title.Font = new Font("Tahoma", 10, FontStyle.Bold); //new Font("Tahoma", 10, FontStyle.Bold);
constantLine1.Title.ShowBelowLine = true;
constantLine1.Title.Alignment = ConstantLineTitleAlignment.Near;
// Customize the appearance of the constant line.
//自定义常量线的外观
constantLine1.Color = color;
constantLine1.LineStyle.DashStyle = dashstyle; //虚线实线
constantLine1.LineStyle.Thickness = thickness; //常量线宽度
}