public void CreateLine(Grid oGrid, string sTitle, string sTableName, bool ifGetSig, string sYUint, string sYUint2, string sYTitle1, string sYTitle2, string sYTitle3, string[] sXLabel, double[] dYValue1, double[] dYValue2, double[] dYValue3)
{
Chart chart = new MyChart();
chart.Width = 500;//宽
chart.Height = 300;//高
//chart.Margin = new Thickness(0, 20, 40, 0);
chart.Margin = new Thickness(0, 0, 10, 20); //位置
chart.ScrollingEnabled = false;
chart.Name = sTableName;
chart.DataPointWidth = 2.5;
if (ifGetSig)
{
chart.MouseLeftButtonUp += new MouseButtonEventHandler(chart_MouseLeftButtonUp);
}
Title title = new Title();
title.Text = sTitle; //图表标题
title.FontSize = 15;//图表标题字体大小
chart.Titles.Add(title);
// X 坐标轴
Axis axisX = new Axis();
AxisLabels xal = new AxisLabels //X 坐标轴样式
{
//Enabled = true, //设置是否显示坐标轴上的文本,默认值为true
//Angle = 45,//设置文本显示的角度,取值为 –90 至 90
FontSize = 13//设置文字大小
};
axisX.AxisLabels = xal;
chart.AxesX.Add(axisX);
// Y 坐标轴
Axis axisY = new Axis();
AxisLabels yal = new AxisLabels // Y 坐标轴样式
{
//Enabled = true, //设置是否显示坐标轴上的文本,默认值为true
//Angle = 45,//设置文本显示的角度,取值为 –90 至 90
FontSize = 13//设置文字大小
};
axisY.AxisLabels = yal;
axisY.Title = sYUint; //Y坐标轴单位
axisY.TitleFontSize = 14;//Y坐标轴单位字体大小
chart.AxesY.Add(axisY);
title.MouseLeftButtonDown += new MouseButtonEventHandler(title_MouseLeftButtonDown);
// Y 坐标轴 双坐标轴
Axis axisYT = new Axis() { AxisType = AxisTypes.Secondary };// 双坐标轴
AxisLabels yalT = new AxisLabels
{
//Enabled = true, //设置是否显示坐标轴上的文本,默认值为true
//Angle = 45,//设置文本显示的角度,取值为 –90 至 90
FontSize = 13//设置文字大小
};
axisYT.AxisLabels = yalT;
axisYT.Title = sYUint2; //双坐标轴单位
axisYT.TitleFontSize = 14;//双坐标轴单位字体大小
chart.AxesY.Add(axisYT);
////设置图标字体大小
//Legend legend = new Legend();
//legend.FontSize = 13;
//chart.Legends.Add(legend);
DataSeries dataSeries1 = new DataSeries();
dataSeries1.LegendText = sYTitle1;
dataSeries1.RenderAs = RenderAs.Line;
dataSeries1.AxisYType = AxisTypes.Primary;
DataSeries dataSeries2 = new DataSeries();
dataSeries2.LegendText = sYTitle2;
dataSeries2.RenderAs = RenderAs.Line;
dataSeries2.AxisYType = AxisTypes.Primary;
DataSeries dataSeries3 = new DataSeries();
dataSeries3.LegendText = sYTitle3;
dataSeries3.RenderAs = RenderAs.Line;
dataSeries3.AxisYType = AxisTypes.Secondary;
DataPoint dp1;
DataPoint dp2;
DataPoint dp3;
for (int i = 0; i < sXLabel.Length; i++)
{
dp1 = new DataPoint();
dp2 = new DataPoint();
dp3 = new DataPoint();
dp1.AxisXLabel = sXLabel[i];
dp1.YValue = dYValue1[i];
dataSeries1.DataPoints.Add(dp1);
dp2.AxisXLabel = sXLabel[i];
dp2.YValue = dYValue2[i];
dataSeries2.DataPoints.Add(dp2);
dp3.AxisXLabel = sXLabel[i];
dp3.YValue = dYValue3[i];
dataSeries3.DataPoints.Add(dp3);
}
chart.Series.Add(dataSeries1);
chart.Series.Add(dataSeries2);
chart.Series.Add(dataSeries3);
oGrid.Children.Add(chart);
}