visifire 图表双坐标轴silverlight

visifire 图表双坐标轴silverlight,第1张

  public void CreateChart(Grid oGrid, ObservableCollection<ListItem> lBaseOilBar)        {            foreach (ListItem li in lBaseOilBar)            {                //图表大小,框线                Chart chart = new MyCharts();                chart.Width = 800;                chart.Height = 600;                chart.ScrollingEnabled = false;                //图表标题                Title title = new Title();                string sTitle = li.Title;                title.Text = sTitle;                title.FontSize = 16;                chart.Titles.Add(title);                // X 坐标轴                Axis axisX = new Axis();                AxisLabels xal = new AxisLabels                {                    FontSize = 14//设置文字大小                };                axisX.AxisLabels = xal;                chart.AxesX.Add(axisX);                // Y 坐标轴                Axis axisY = new Axis();                AxisLabels yal = new AxisLabels                {                    FontSize = 14//设置文字大小                };                axisY.AxisLabels = yal;                //Y轴数据单位                string sYUint = li.YUint;                axisY.Title = sYUint;                axisY.TitleFontSize = 15;                chart.AxesY.Add(axisY);                if (li.ChartType == "Column") //柱状图                {                    switch (li.YAXISs.Count())                    {                        case 1:                            chart.DataPointWidth = 4;//设置柱子宽度                            break;                        case 2:                            chart.DataPointWidth = 2.5;                            break;                        case 3:                            chart.DataPointWidth = 1.8;                            break;                    }                }                title.MouseLeftButtonDown += new MouseButtonEventHandler(title_MouseLeftButtonDown);

                ////设置图标字体大小                //Legend legend = new Legend();                //legend.FontSize = 13;                //chart.Legends.Add(legend);1

                //X轴数据                string[] sXLabel = li.XAXIS.ToArray();                string sTableName = "";                #region 点击是否触发事件,钻取数据图表赋值一个物理表名                bool ifGetSig = false;                switch (li.ChartName)                {                    case "Stock":                        sTableName = "StockSingleOildom";                        ifGetSig = true;                        break;                    case "Drill_JC":                        sTableName = "Drill_JCSingleOildom";                        ifGetSig = true;                        break;                    case "EXTRACTIONOIL":                        sTableName = "EXTRACTIONOILSingleOildom";                        ifGetSig = true;                        break;                    case "Drill_MACHINE":                        sTableName = "Drill_MACHINESingleOildom";                        ifGetSig = true;                        break;                    case "PROVEDRILL":                        sTableName = "PROVEDRILLSingleOildom";                        ifGetSig = true;                        break;                }                #endregion                #region 图表柱状个数,循环加载数据                ColorSet cs = new ColorSet();                cs.Id = "colorset1"; // 设置ColorSet 的 Id 为 colorset1                //foreach (YAXIS oYAXIS in li.YAXISs)                for (int j = 0; j < li.YAXISs.Count(); j++)                {                    YAXIS oYAXIS = (YAXIS)li.YAXISs[j];                    string sYTitle = "";                    sYTitle = oYAXIS.Name;                    double[] dYValue = null;                    dYValue = oYAXIS.YValue.ToArray();                    DataSeries dataSeries = new DataSeries();                    dataSeries.LegendText = sYTitle;                    #region 双坐标轴                    string IsTwoY = "";                    IsTwoY = oYAXIS.TWOY;                    if (IsTwoY == "true")                    {                        Axis axisYT = new Axis() { AxisType = AxisTypes.Secondary };                        AxisLabels yalT = new AxisLabels                        {                            //Enabled = true, //设置是否显示坐标轴上的文本,默认值为true                            //Angle = 45,//设置文本显示的角度,取值为 –90 至 90                            FontSize = 14//设置文字大小                        };                        axisYT.AxisLabels = yalT;                        axisYT.AxisMinimum = 0;                        axisYT.AxisMaximum = 100;                        //Y轴数据单位                        string sYUintT = li.YUintT;                        axisYT.Title = sYUintT;                        axisYT.TitleFontSize = 15;                        chart.AxesY.Add(axisYT);                        dataSeries.AxisYType = AxisTypes.Secondary;                    }                    #endregion                    else                    {                        dataSeries.AxisYType = AxisTypes.Primary;                    }                    #region 设置柱状图的颜色 待开发                    //ColorSet cs = new ColorSet();                    //string strColor = oYAXIS.Color;                    //////Colors oColors = new Colors();                    //cs.Id = "colorset1"; // 设置ColorSet 的 Id 为 colorset1                    //cs.Brushes.Add(new SolidColorBrush(Colors.Green));                    //cs.Brushes.Add(new SolidColorBrush(Colors.Red));                    //cs.Brushes.Add(new SolidColorBrush(Colors.Blue));                    ////cs.Brushes.Add(new SolidColorBrush(Colors.Yellow));                    ////cs.Brushes.Add(new SolidColorBrush(Colors.Orange));                    //chart.ColorSets.Add(cs);                    //chart.ColorSet = "colorset1";  // 设置 Chart 使用自定义的颜色集合 colorset1                    string strColor = oYAXIS.Color;                    switch (strColor)                    {                        case "Red":                            cs.Brushes.Add(new SolidColorBrush(Color.FromArgb(0xff, 0xff, 0x45, 0x00))); //#FFFF4500 orangeRed                            break;                        case "Yellow":                            cs.Brushes.Add(new SolidColorBrush(Color.FromArgb(0xff, 0xda, 0xa5, 0x20)));//FFDAA520 Goldenrod                            break;                        case "Orange":                            cs.Brushes.Add(new SolidColorBrush(Colors.Orange));                            break;                        case "Green":                            cs.Brushes.Add(new SolidColorBrush(Colors.Green));                            break;                        case "Blue":                            cs.Brushes.Add(new SolidColorBrush(Color.FromArgb(0xff, 0x41, 0x69, 0xe1))); //FF4169E1 RoyalBlue                            break;                        default:                            break;                    }                    #endregion                    #region 图表类型(柱状,饼状……)                    string sChartType = li.ChartType;                    RenderAs oRenderAs = new RenderAs();                    switch (sChartType)                    {                        case "Column":                            oRenderAs = RenderAs.Column;                            break;                        case "Pie":                            oRenderAs = RenderAs.Pie;                            //dataSeries.LabelFontSize = 14;//设置图标字体大小                            break;                        case "Line":                            oRenderAs = RenderAs.Line;                            break;                    }                    dataSeries.RenderAs = oRenderAs;                    #endregion                    #region 构造数据                    DataPoint dp;                    if (sXLabel != null)                    {                        for (int i = 0; i < sXLabel.Length; i++)                        {                            dp = new DataPoint();                            dp.AxisXLabel = sXLabel[i];                            dp.YValue = dYValue[i];                            if (ifGetSig)                            {                                dp.Tag = sTableName;                                //dp.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);                            }                            //饼状图去除值为0的oildom                            if ((dataSeries.RenderAs == RenderAs.Pie || dataSeries.RenderAs == RenderAs.Line) && dp.YValue == 0)                            {

                            }

                            else                            {                                dataSeries.DataPoints.Add(dp);                            }                        }                    }                    #endregion                    chart.Series.Add(dataSeries);                }                // 设置 Chart 使用自定义的颜色集合 colorset1                if (cs.Brushes.Count > 0)                {                    chart.ColorSets.Clear();                    chart.ColorSets.Add(cs);                    chart.ColorSet = "colorset1";                }                #endregion                oGrid.Children.Add(chart);            }        }

visifire 图表双坐标轴 silverlight,码迷,mamicode.com

visifire 图表坐标轴 silverlight

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/1006953.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存