Exemple #1
0
        public void CreatePowerChart(string startDate, string endDate)
        {
            try
            {
                #region 功率图表处理
                string chartTitle = string.Empty;
                string unit = string.Empty;
                ChartData chartData = null;
                try
                {
                    chartData = DataUtil.getPowerData(this.plantId, startDate, endDate);
                    if (chartData == null)
                    {
                        gidPowerChartContainer.Children.Clear();
                        Label l = new Label();
                        l.Content = "无数据";
                        l.HorizontalAlignment = HorizontalAlignment.Center;
                        l.VerticalAlignment = VerticalAlignment.Center;
                        l.FontSize = 48;
                        gidPowerChartContainer.Children.Add(l);
                        return;
                    }
                }
                catch (Exception e2)
                {
                    Console.WriteLine(e2.StackTrace);
                    gidPowerChartContainer.Children.Clear();
                    Label l = new Label();
                    l.Content = "无数据";
                    l.HorizontalAlignment = HorizontalAlignment.Center;
                    l.VerticalAlignment = VerticalAlignment.Center;
                    l.FontSize = 48;
                    gidPowerChartContainer.Children.Add(l);
                    return;
                }

                Chart chart = new Chart();
                ColorSet cs = new ColorSet();
                cs.Brushes.Add(new SolidColorBrush(Color.FromArgb(240, 252, 101, 6)));
                cs.Id = "colorSet1";
                chart.ColorSets.Add(cs);
                chart.ColorSet = "colorSet1";
                chart.BorderBrush = new SolidColorBrush(Color.FromArgb(155, 0, 0, 0));
                chart.Background = new SolidColorBrush(Color.FromArgb(1, 255, 255, 255));
                chart.View3D = false;
                chart.ScrollingEnabled = false;
                chart.CornerRadius = new CornerRadius(30);
                Title title = new Title();
                chart.Titles.Add(title);
                Axis axisX = new Axis();
                axisX.IntervalType = IntervalTypes.Number;
                axisX.Interval = 24;
                axisX.FontSize = 20;
                AxisLabels labels = new AxisLabels();
                axisX.AxisLabels = labels;
                labels.Angle = -45;
                labels.FontSize = 22;
                chart.AxesX.Add(axisX);

                Axis axisY = new Axis();
                axisY.Title = "kW";
                axisY.FontSize = 22;
                axisY.AxisMinimum = 0;
                axisY.TitleFontSize = 20;
                axisY.AxisType = AxisTypes.Primary;

                Axis axisY2 = new Axis();
                axisY2.Title = "W/㎡";
                axisY2.FontSize = 22;
                axisY2.TitleFontSize = 20;
                axisY2.AxisMinimum = 0;
                axisY2.ValueFormatString = "0";
                axisY2.AxisType = AxisTypes.Secondary;

                labels = new AxisLabels();
                labels.FontSize = 22;
                axisY.AxisLabels = labels;
                chart.AxesY.Add(axisY);

                labels = new AxisLabels();
                labels.FontSize = 22;
                axisY2.AxisLabels = labels;
                chart.AxesY.Add(axisY2);

                Legend legend1 = new Legend();
                legend1.FontSize = 14;
                chart.Legends.Add(legend1);

                DataSeries dataSeries = new DataSeries();
                dataSeries.RenderAs = RenderAs.Area;
                dataSeries.XValueType = ChartValueTypes.Auto;
                DataPoint dataPoint;
                dataSeries.AxisYType = AxisTypes.Primary;
                dataSeries.LegendText = chartData.series[0].name;
                for (int i = 0; i < chartData.series[0].data.Count(); i++)
                {
                    dataPoint = new DataPoint();
                    //dataPoint.YValue = chartData.series[0].data[i] == null ? 0 : chartData.series[0].data[i].Value;
                    if (chartData.series[0].data[i] != null)
                        dataPoint.YValue = chartData.series[0].data[i].Value;
                    dataPoint.AxisXLabel = chartData.categories[i];
                    dataSeries.DataPoints.Add(dataPoint);
                }

                chart.Series.Add(dataSeries);
                //if(chartData.series)
                DataSeries dataSunSeries = new DataSeries();
                dataSunSeries.RenderAs = RenderAs.QuickLine;
                dataSunSeries.XValueType = ChartValueTypes.Auto;
                DataPoint sundataPoint;
                dataSunSeries.AxisYType = AxisTypes.Secondary;
                dataSunSeries.LegendText = chartData.series[1].name;
                dataSunSeries.Color = new SolidColorBrush(Color.FromRgb(23, 118, 184));
                dataSunSeries.LineThickness = 2;
                for (int i = 0; i < chartData.series[1].data.Count(); i++)
                {
                    sundataPoint = new DataPoint();
                    if (chartData.series[1].data[i] != null)
                        sundataPoint.YValue = chartData.series[1].data[i].Value;
                    //sundataPoint.AxisXLabel = chartData.categories[i];
                    dataSunSeries.DataPoints.Add(sundataPoint);
                }
                chart.Series.Add(dataSunSeries);
                double maxValue = dataSunSeries.DataPoints.Max(m => m.YValue);
                if (maxValue < 7 || maxValue.Equals(double.NaN))
                {
                    axisY2.AxisMaximum = 0;
                    axisY2.AxisMaximum = 7;
                    axisY2.Interval = 1;
                }
                gidPowerChartContainer.Children.Clear();
                gidPowerChartContainer.Children.Add(chart);
                #endregion
            }
            catch (Exception ee)
            {
                LogUtil.error("CreatePowerChart error:" + ee.StackTrace);
                throw ee;
            }
        }
Exemple #2
0
        /// <summary>
        /// Set dataPoint colors from ColorSet
        /// </summary>
        /// <param name="Series">List of DataSeries</param>
        private void SetDataPointColorFromColorSet(System.Collections.Generic.IList<DataSeries> series)
        {
            ColorSet colorSet = null;

            if(_financialColorSet == null)
                _financialColorSet = Chart.GetColorSetByName("CandleLight");

            _financialColorSet.ResetIndex();

            // Load chart colorSet
            if (!String.IsNullOrEmpty(Chart.ColorSet))
            {
                colorSet = Chart.GetColorSetByName(Chart.ColorSet);
                _chartColorSet = colorSet;
            }

            if (series.Count == 1)
            {
                LoadSeriesColorSet4SingleSeries(series[0]);
            }
            else if (series.Count > 1)
            {
                if (_chartColorSet != null)
                    _chartColorSet.ResetIndex();

                foreach (DataSeries ds in series)
                {
                    LoadSeriesColorSet(ds);
                }
            }

            if (colorSet != null)
                colorSet.ResetIndex();
        }
 /// <summary>
 /// cambiar la paleta de colores
 /// </summary>
 public void changePalete(List<Color> colores)
 {
     if (LayoutRoot.Children.Count > 0)
     {
         Chart chart = (Chart)LayoutRoot.Children[0];
         ColorSet set = new ColorSet();
         set.Id = "Custom" + count;
         foreach (Color col in colores)
         {
             Brush b = new SolidColorBrush(col);
             set.Brushes.Add(b);
         }
         if (colores != null && colores.Count > 0)
         {
             chart.ColorSets.Clear();
             chart.ColorSets.Add(set);
             chart.ColorSet = "Custom" + count;
             LayoutRoot.Children.Clear();
             LayoutRoot.Children.Add(chart);
             count++;
         }
     }
 }
Exemple #4
0
        /// <summary>
        /// 绘制发电量图表
        /// </summary>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <param name="type">1:week 2:month</param>
        public void CreateEnergyChart(string startDate, string endDate, int type)
        {
            try
            {
                columnWidth = curPage == int.Parse(ConfigPara.MonthEnergyChartPage) ? 2 : 5;
                float maxValue = 0f;
                #region 发电量图表显示
                string chartTitle = string.Empty;
                string unit = string.Empty;
                string startDateStr = string.Format("{0}-{1}-{2}", startDate.Substring(0, 4), startDate.Substring(4, 2), startDate.Substring(6, 2));

                DateTime startDateTime = DateTime.Parse(startDateStr);
                IList<KeyValuePair<string, float?>> energyChartData;
                try
                {
                    energyChartData = DataUtil.getEnergyData(this.plantId, startDate, endDate, chartTitle, unit, out maxValue);
                    if (energyChartData == null)
                    {
                        gidEnergyChartContainer.Children.Clear();
                        Label l = new Label();
                        l.Content = "无数据";
                        l.HorizontalAlignment = HorizontalAlignment.Center;
                        l.VerticalAlignment = VerticalAlignment.Center;
                        l.FontSize = 48;
                        gidEnergyChartContainer.Children.Add(l);
                        return;
                    }
                }
                catch (Exception e2)
                {
                    Console.WriteLine(e2.Message);
                    gidEnergyChartContainer.Children.Clear();
                    Label l = new Label();
                    l.Content = "无数据";
                    l.HorizontalAlignment = HorizontalAlignment.Center;
                    l.VerticalAlignment = VerticalAlignment.Center;
                    l.FontSize = 48;
                    gidEnergyChartContainer.Children.Add(l);
                    return;
                }
                Chart energyChart = new Chart();
                ColorSet cs = new ColorSet();
                cs.Brushes.Add(new SolidColorBrush(Color.FromArgb(240, 252, 101, 6)));
                cs.Id = "colorSet1";

                energyChart.ColorSets.Add(cs);
                energyChart.ColorSet = "colorSet1";
                energyChart.BorderBrush = new SolidColorBrush(Color.FromArgb(155, 0, 0, 0));
                energyChart.Background = new SolidColorBrush(Color.FromArgb(1, 255, 255, 255));

                energyChart.View3D = false;
                energyChart.ScrollingEnabled = false;
                energyChart.CornerRadius = new CornerRadius(30);
                Title energTitle = new Title();
                energTitle.FontSize = 22;
                energyChart.Titles.Add(energTitle);
                Axis eaxis = new Axis();
                eaxis.IntervalType = IntervalTypes.Number;
                if (type == 2)
                    eaxis.Interval = 2;
                eaxis.TitleFontSize = 22;
                eaxis.FontSize = 22;

                AxisLabels elabels = new AxisLabels();
                elabels.FontSize = 22;
                eaxis.AxisLabels = elabels;

                elabels.Angle = -45;
                energyChart.AxesX.Add(eaxis);

                Axis eaxisY = new Axis();
                eaxisY.Title = "kWh";
                eaxisY.FontSize = 24;
                eaxisY.TitleFontSize = 22;
                elabels = new AxisLabels();
                elabels.FontSize = 22;
                eaxisY.AxisLabels = elabels;
                energyChart.AxesY.Add(eaxisY);

                DataSeries edataSeries = new DataSeries();
                edataSeries.RenderAs = RenderAs.Column;
                edataSeries.XValueType = ChartValueTypes.Auto;
                DataPoint edataPoint;
                double percent20 = maxValue * 0.02;
                for (int i = 0; i < energyChartData.Count; i++)
                {
                    edataPoint = new DataPoint();
                    edataPoint.AxisXLabel = startDateTime.AddDays(i).ToString("yy/MM/dd");
                    edataPoint.XValue = i;
                    edataPoint.YValue = (double)energyChartData[i].Value;
                    edataPoint.ToolTipText = string.Format("{0},{1}", edataPoint.AxisXLabel, energyChartData[i].Value);
                    if (edataPoint.YValue < percent20 && edataPoint.YValue > 0)
                        edataPoint.YValue = percent20;
                    edataSeries.DataPoints.Add(edataPoint);
                }
                energyChart.DataPointWidth = columnWidth;
                energyChart.Series.Add(edataSeries);
                gidEnergyChartContainer.Children.Clear();
                gidEnergyChartContainer.Children.Add(energyChart);
                #endregion
            }
            catch (Exception ee)
            {
                LogUtil.error("CreateEnergyChart error:" + ee.StackTrace);
                throw ee;
            }
        }
Exemple #5
0
        public MyChart GetPng(MyChart chart,RenderAs mode)
        {
            // 新建一个 ColorSet 实例
            ColorSet cs = new ColorSet();
            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
            chart.AnimationEnabled = false;
            DataSeries dataSeries = new DataSeries();
            dataSeries.RenderAs = mode;
            dataSeries.DataPoints.Add(new DataPoint
            {
                YValue = 20
            });
            dataSeries.DataPoints.Add(new DataPoint
            {
                YValue = 40
            });
          

            chart.Series.Add(dataSeries);
            return chart;

        }
Exemple #6
0
        /// <summary>
        /// Create a chart for Numeric Axis
        /// </summary>
        /// <returns></returns>
        public Chart CreateAChartWithSingleSeries()
        {
            Chart chart = new Chart();
            chart.Width = 600;
            chart.Height = 300;
            chart.ScrollingEnabled = false;

            Axis axisx = new Axis();
            axisx.AxisLabels = new AxisLabels();
            axisx.AxisLabels.Angle = 45;
            chart.AxesX.Add(axisx);
            
            
            Legend legend = new Legend();
            legend.HorizontalAlignment = HorizontalAlignment.Left;
            legend.VerticalAlignment = VerticalAlignment.Center;
            chart.Legends.Add(legend);

            Common.CreateAndAddDefaultDataSeries4Sampling(chart);
           
            chart.ColorSets = new ColorSets();
            //COLOR SET 1:
            ColorSet ct = new ColorSet();
            ct.Id = "MyColorSet1";
            ct.Brushes.Add(new SolidColorBrush(Colors.Blue));
            ct.Brushes.Add(new SolidColorBrush(Colors.Brown));
            ct.Brushes.Add(new SolidColorBrush(Colors.Cyan));
            ct.Brushes.Add(new SolidColorBrush(Colors.DarkGray));
            ct.Brushes.Add(new SolidColorBrush(Colors.Gray));
            ct.Brushes.Add(new SolidColorBrush(Colors.Green));

            // Add ColorSet to ColorSets collection
            chart.ColorSets.Add(ct);

            //COLOR SET 2:
            ColorSet ct1 = new ColorSet();
            ct1.Id = "MyColorSet2";
            ct1.Brushes.Add(new SolidColorBrush(Colors.Red));
            ct1.Brushes.Add(new SolidColorBrush(Colors.Blue));
            ct1.Brushes.Add(new SolidColorBrush(Colors.Green));
            ct1.Brushes.Add(new SolidColorBrush(Colors.Orange));
            ct1.Brushes.Add(new SolidColorBrush(Colors.Purple));
            ct1.Brushes.Add(new SolidColorBrush(Colors.Black));
            // Create new instance of ColorSets class
            chart.ColorSets.Add(ct1);

            return chart;
        }
Exemple #7
0
        private void SetColor4CircularSeries(DataSeries dataSeries, ColorSet colorSet4MultiSeries, Boolean isUniqueColor4EachDP)
        {
            if (dataSeries.Color == null)
            {
                Brush colorFromColorSet = colorSet4MultiSeries.GetNewColorFromColorSet();

                Brush seriesColor = dataSeries.GetValue(DataSeries.ColorProperty) as Brush;

                if (seriesColor == null)
                    dataSeries._internalColor = colorFromColorSet;
                else
                    dataSeries._internalColor = seriesColor;

                foreach (DataPoint dp in dataSeries.DataPoints)
                {
                    dp.IsNotificationEnable = false;

                    Brush dPColor = dp.GetValue(DataPoint.ColorProperty) as Brush;

                    if (dPColor == null)
                    {
                        // If unique color for each DataPoint
                        if (isUniqueColor4EachDP)
                        {
                            if (seriesColor == null)
                                dp._internalColor = colorSet4MultiSeries.GetNewColorFromColorSet();
                            else
                                dp._internalColor = seriesColor;
                        }
                        else
                        {
                            if (seriesColor == null)
                                dataSeries._internalColor = colorFromColorSet;
                            else
                                dataSeries._internalColor = seriesColor;

                            dp.IsNotificationEnable = true;

                            break;
                        }
                    }
                    else
                        dp._internalColor = dPColor;


                    dp.IsNotificationEnable = true;
                }
            }
        }
Exemple #8
0
 public Theme()
 {
     ColorSet = new ColorSet();
     Styles = new List<ElementStyle>();
 }
Exemple #9
0
 public Theme()
 {
     ColorSet = new ColorSet();
     Styles   = new List <ElementStyle>();
 }