zoukankan      html  css  js  c++  java
  • visifire 图表双坐标轴 silverlight

      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);
                }
            }

  • 相关阅读:
    python增加 删除列表元素
    Fildder2
    Appscan使用第三方浏览器
    Appscan的下载安装
    http状态码
    python学习资料
    Fiddler抓包工具
    性能测试的一些资料
    Jmeter分布式测试
    内存溢出的原因及解决办法(转)
  • 原文地址:https://www.cnblogs.com/xuxin-1989/p/3695658.html
Copyright © 2011-2022 走看看