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; } }
/// <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++; } } }
/// <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; } }
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; }
/// <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; }
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; } } }
public Theme() { ColorSet = new ColorSet(); Styles = new List<ElementStyle>(); }
public Theme() { ColorSet = new ColorSet(); Styles = new List <ElementStyle>(); }