public void ReloadSeries() { var views = items.Where(p => p.States.IsStateDoneWithDate(StateEnum.Finished)).ToList(); Series.Clear(); Counts.Clear(); foreach (var t in MovieViewModel.TypesDict) { int c = 0; var points = new List <DateTimePoint>(); for (var dt = FirstDay; dt <= LastDay; dt = dt.AddDays(1)) { var count = views.Count(p => p.FinishDate == dt && p.Type == t.Key); points.Add( new DateTimePoint() { DateTime = dt, Value = count }); c = c + count; } var a = new StackedColumnSeries() { Values = new ChartValues <DateTimePoint>(points), Title = t.Value, Fill = ConvertFuncs.TypeToBrushFunc(t.Key) }; Series.Add(a); Counts.Add(new CountClass(c, t.Key, t.Value)); } Totals = Counts.Sum(p => p.Count); Reloaded?.Invoke(null, EventArgs.Empty); }
public void ReloadSeries() { var views = items.Where(p => p.IsFinishedWithDate).ToList(); Series.Clear(); Counts.Clear(); foreach (var t in MovieViewModel.TypesDict) { int c = 0; var points = new List <DataModel>(); for (var dt = 2012; dt <= DateTime.Today.Year; dt = dt + 1) { var count = views.Count(p => p.FinishDate.Value.Year == dt && p.Type == t.Key); points.Add( new DataModel() { Year = dt, Count = count }); c = c + count; } var a = new StackedColumnSeries() { Values = new ChartValues <DataModel>(points), Title = t.Value, Fill = ConvertFuncs.TypeToBrushFunc(t.Key) }; Series.Add(a); Counts.Add(new CountClass(c, t.Key, t.Value)); } Totals = Counts.Sum(p => p.Count); Reloaded?.Invoke(null, EventArgs.Empty); }
/// <summary> /// Builds an overview A1-Mix graph for the user to add to a graph /// </summary> /// <param name="project"></param> /// <returns></returns> public static SeriesCollection BuildBarGraph(CarboProject project) { List <CarboDataPoint> pointCollection = new List <CarboDataPoint>(); // get the current Project pointCollection = project.getPhaseTotals(); SeriesCollection result = new SeriesCollection(); //Build series foreach (CarboDataPoint pont in pointCollection) { StackedColumnSeries series = new StackedColumnSeries { Values = new ChartValues <double> { Math.Round((pont.Value / 1000), 2), }, StackMode = StackMode.Values, DataLabels = true, Title = pont.Name }; result.Add(series); } return(result); }
public void getCartesianChart() { //cartesianChart2 题目提交分类统计 cartesianChart1.Series.Clear(); for (int i = 0; i < 4; ++i) { StackedColumnSeries stackedColumnSeries = new StackedColumnSeries(); stackedColumnSeries.StackMode = StackMode.Values; stackedColumnSeries.DataLabels = false; stackedColumnSeries.Title = OperateForm.resultName[i]; stackedColumnSeries.Values = new ChartValues <double>(); for (int j = 0; j < OperateForm.problemCnt; ++j) { try { if (OperateForm.result[i] != 4) { stackedColumnSeries.Values.Add(-double.Parse((DBTool.getTotResultByResultAndNum(OperateForm.result[i], j)).ToString())); } else { stackedColumnSeries.Values.Add(double.Parse((DBTool.getTotResultByResultAndNum(OperateForm.result[i], j)).ToString())); } } catch (Exception ex) { print("网络连接中断!"); Application.Exit(); } } cartesianChart1.Series.Add(stackedColumnSeries); } string[] labels2 = new string[OperateForm.problemCnt]; for (int i = 0; i < OperateForm.problemCnt; ++i) { labels2[i] = OperateForm.charMp[i]; } cartesianChart1.AxisX.Clear(); cartesianChart1.AxisX.Add(new Axis { Labels = labels2, Separator = new Separator // force the separator step to 1, so it always display all labels { Step = 1, IsEnabled = false //disable it to make it invisible. }, LabelsRotation = 0 }); cartesianChart1.AxisY.Clear(); cartesianChart1.AxisY.Add(new Axis { LabelFormatter = value => value + "" }); }
public SeriesCollection ToStackedColumnSeriesCollection() { SeriesCollection seriesCollection = new SeriesCollection(); for (int r = 0; r < SeriesD.Count; r++) { StackedColumnSeries series = new StackedColumnSeries(); ConfigureSeries(series, r); seriesCollection.Add(series); } return(seriesCollection); }
/// <summary> /// Returns a comaring bar chart showing the total values of the project /// </summary> /// <param name="carboLifeProject"></param> /// <param name="projectListToCompareTo"></param> /// <returns></returns> internal static SeriesCollection BuildComparingTotalsBarGraph(CarboProject project, List <CarboProject> projectListToCompareTo) { SeriesCollection result = new SeriesCollection(); //Full list to compare to: List <CarboProject> fullProjectListToCompareTo = new List <CarboProject>(); //bool hasCurrent = false; if (project != null) { fullProjectListToCompareTo.Add(project); //hasCurrent = true; } foreach (CarboProject projectToCompare in projectListToCompareTo) { if (projectToCompare != null) { fullProjectListToCompareTo.Add(projectToCompare); } } //The list has been created List <List <CarboDataPoint> > pointList = new List <List <CarboDataPoint> >(); foreach (CarboProject dp in fullProjectListToCompareTo) { List <CarboDataPoint> listofPoints = dp.getPhaseTotals(); pointList.Add(listofPoints); } try { /* * DataTable dt = new DataTable(); * * dt.Columns.Add("A1-A3"); * dt.Columns.Add("A4"); * dt.Columns.Add("A5"); * dt.Columns.Add("B1B7"); * dt.Columns.Add("C1-C4"); * dt.Columns.Add("D"); * dt.Columns.Add("Mix"); * dt.Columns.Add("Add"); * dt.Columns.Add("B4"); * * * foreach (List<CarboDataPoint> pr in pointList) * { * DataRow dr = dt.NewRow(); * for (int i = 0; i < pr.Count - 1; i++) * { * dr[i] = pr[i].Value / 1000; * } * dt.Rows.Add(dr); * } * * 0 CarboDataPoint cb_A1A3 = new CarboDataPoint("A1-A3", 0); * 1 CarboDataPoint cb_A4 = new CarboDataPoint("A4", 0); * 2 CarboDataPoint cb_A5 = new CarboDataPoint("A5(Material)",0); * 3 CarboDataPoint cb_A5Global = new CarboDataPoint("A5(Global)", this.A5Global); * 4 CarboDataPoint cb_B1B5 = new CarboDataPoint("B1-B7", 0); * 5 CarboDataPoint cb_C1C4 = new CarboDataPoint("C1-C4", 0); * 6 CarboDataPoint cb_C1Global = new CarboDataPoint("C1(Global)", this.C1Global); * 7 CarboDataPoint cb_D = new CarboDataPoint("D", 0); * 8 CarboDataPoint Added = new CarboDataPoint("Additional", 0); * * */ //loop though // i is nr type of information extracted for (int i = 0; i < 9; i++) { StackedColumnSeries newSeries = new StackedColumnSeries(); ChartValues <double> Values = new ChartValues <double>(); //get all Values from all loaded projects foreach (List <CarboDataPoint> dataPointList in pointList) { Values.Add(Math.Round((dataPointList[i].Value / 1000), 1)); } newSeries.Title = pointList[0][i].Name; newSeries.Values = Values; newSeries.StackMode = StackMode.Values; newSeries.DataLabels = true; newSeries.Foreground = Brushes.Black; //newSeries.Width = 100; newSeries.MaxColumnWidth = 50; newSeries.LabelsPosition = BarLabelPosition.Perpendicular; result.Add(newSeries); } } catch { return(null); } return(result); }
public static Tuple <Axis, Axis, List <Series> > ConfigureChartByChartType( string SeriesChartType, List <string> lstBoxSelectedStringValues) { DefaultTooltip defaultTooltip = new DefaultTooltip(); defaultTooltip.SelectionMode = TooltipSelectionMode.OnlySender; Axis AbscissaAxis = new Axis() { Separator = new Separator() { Step = 1, IsEnabled = false }, Title = "Date", Labels = lstBoxSelectedStringValues, LabelsRotation = 20, FontSize = 16 }; Axis OrdinateAxis = new Axis() { Title = "Time Duration (hrs)", FontSize = 16, LabelFormatter = v => v.ToString("N0") }; switch (SeriesChartType) { case "Column": ColumnSeries columnSeries = new ColumnSeries() { Title = "GeneratorOn (hrs)", DataLabels = true, Values = new ChartValues <double>() }; List <Series> columnSeriesList = new List <Series>(); columnSeriesList.Add(columnSeries); return(new Tuple <Axis, Axis, List <Series> >( OrdinateAxis, AbscissaAxis, columnSeriesList)); case "Stacked Column": StackedColumnSeries stackedColumnSeries = new StackedColumnSeries() { DataLabels = true, Values = new ChartValues <double>() }; List <Series> stackedColumnSeriesList = new List <Series>(); stackedColumnSeriesList.Add(stackedColumnSeries); return(new Tuple <Axis, Axis, List <Series> >( OrdinateAxis, AbscissaAxis, stackedColumnSeriesList)); case "Stacked Area": StackedAreaSeries stackedAreaSeries = new StackedAreaSeries() { DataLabels = true, Values = new ChartValues <DateTimePoint>() }; List <Series> stackedAreaSeriesList = new List <Series>(); stackedAreaSeriesList.Add(stackedAreaSeries); return(new Tuple <Axis, Axis, List <Series> >( OrdinateAxis, AbscissaAxis, stackedAreaSeriesList)); case "Line": LineSeries lineSeries = new LineSeries() { Title = "GeneratorOn (hrs)", DataLabels = true, Values = new ChartValues <double>() }; List <Series> lineSeriesList = new List <Series>(); lineSeriesList.Add(lineSeries); return(new Tuple <Axis, Axis, List <Series> >( OrdinateAxis, AbscissaAxis, lineSeriesList)); case "Pie": PieSeries pieSeries = new PieSeries() { Title = "GeneratorOn (hrs)", DataLabels = true, Values = new ChartValues <double>() }; List <Series> pieSeriesList = new List <Series>(); pieSeriesList.Add(pieSeries); return(new Tuple <Axis, Axis, List <Series> >( OrdinateAxis, AbscissaAxis, pieSeriesList)); default: break; } return(null); }
private void dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { dynamic selectedItem = dataGrid.SelectedItems[0]; waterfallFlow.Children.Clear(); Series series = new ColumnSeries(); switch (FindElement.Settings.ChartType ?? 0) { case 0: series = new ColumnSeries { }; break; case 1: series = new StackedColumnSeries { }; break; case 2: series = new LineSeries { }; break; case 3: series = new StepLineSeries { }; break; case 4: series = new StackedAreaSeries { }; break; } getStudentScore(selectedItem.Id); // get Student scores //get scores merge duplicates and replace string to int var score = _initialCollection.GroupBy(x => new { x.Book, x.Date, x.StudentId }) .Select(x => new { x.Key.StudentId, x.Key.Book, x.Key.Date, Sum = x.Sum(y => AppVariable.EnumToNumber(y.Scores)) }).ToArray(); //get Book Count for generate chart var bookCount = score.GroupBy(x => new { x.Book }) .Select(g => new { g.Key.Book }).ToList(); MaterialChart _addUser; Control _currentUser; //generate chart based on count of books foreach (var item in bookCount) { _addUser = new MaterialChart(item.Book, selectedItem.Name + " " + selectedItem.LName, getDateArray(item.Book), getScoreArray(item.Book), getAverage(item.Book), getAverageStatus(item.Book), series, AppVariable.GetBrush(FindElement.Settings.ChartColor ?? AppVariable.CHART_GREEN)); _currentUser = _addUser; waterfallFlow.Children.Add(_currentUser); } waterfallFlow.Refresh(); } catch (ArgumentNullException) { } catch (NullReferenceException) { } }
public StackedColumnSeries SetProperties(StackedColumnSeries NewSeries, DataPt Pt) { NewSeries.LabelsPosition = GetPosition((int)Pt.Label.Alignment); return(NewSeries); }
void Update() { chart.Series.Clear(); for (int r = 0; r < dt.Rows.Count; r++) { Series CSeries; if (Ctype == ChartType.Chart_Type.PieChart) { CSeries = new PieSeries(); } else if (Ctype == ChartType.Chart_Type.ColumnChart) { CSeries = new ColumnSeries(); } else if (Ctype == ChartType.Chart_Type.RowChart) { CSeries = new RowSeries(); } else if (Ctype == ChartType.Chart_Type.StackedColumnChart) { CSeries = new StackedColumnSeries(); } else if (Ctype == ChartType.Chart_Type.StackedRowChart) { CSeries = new StackedRowSeries(); } else if (Ctype == ChartType.Chart_Type.StackedAreaChart) { CSeries = new StackedAreaSeries(); } else if (Ctype == ChartType.Chart_Type.StepLineChart) { CSeries = new StepLineSeries(); } else { CSeries = new LineSeries(); } CSeries.Values = new ChartValues <double> { }; for (int c = 0; c < dt.Columns.Count; c++) { // Debug.WriteLine(dt.Rows[r].Field<double?>(c)); if (dt.Rows[r].Field <double?>(c) != null) { CSeries.Values.Add(dt.Rows[r].Field <double>(c)); } }//columns if (r < ListBox_Customization.Items.Count) { StackPanel panel = (StackPanel)ListBox_Customization.Items[r]; CSeries.Title = ((TextBox)panel.Children[0]).Text; CSeries.DataLabels = (((CheckBox)panel.Children[1]).IsChecked == true); double size = 10; if (double.TryParse(((TextBox)panel.Children[2]).Text, out size) == false) { size = 10; } CSeries.FontSize = size; CSeries.Stroke = ((Rectangle)((StackPanel)panel.Children[3]).Children[0]).Fill; double sth = 0; if (double.TryParse(((TextBox)panel.Children[4]).Text, out sth)) { CSeries.StrokeThickness = sth; } /* * if ((((CheckBox)panel.Children[4]).IsChecked == true)) * CSeries.Fill = ((Rectangle)((StackPanel)panel.Children[5]).Children[0]).Fill; * else * CSeries.Fill = null;*/ } else { CSeries.Title = "R" + r; CSeries.DataLabels = true; } chart.Series.Add(CSeries); }//rows if (RB_CusColors.IsChecked == true) { ColorsCollection colorsCollection = new ColorsCollection(); for (int i = 0; i < ListBox_Colors.Items.Count; i++) { StackPanel stack = (StackPanel)ListBox_Colors.Items[i]; colorsCollection.Add(((SolidColorBrush)((Rectangle)stack.Children[0]).Fill).Color); } chart.SeriesColors = colorsCollection; } else { chart.SeriesColors = null; } }
private async void ExcecuteLoadDataCommand() { RequestIsWorking = true; HttpResponseMessage resp = await Client.GetAsync(GlobalVariables.BackendServer_URL + $"/api/auswertung/steuern/Steuerart/Monate?jahrVon={jahrvon}&jahrBis={jahrbis}"); if (resp.IsSuccessStatusCode) { ItemList = await resp.Content.ReadAsAsync <List <SteuerartMonatAuswertungModel> >(); Labels = new string[ItemList.Count]; IList <Betrag> werte = new List <Betrag>(); int index = 0; ItemList.ToList().ForEach(item => { item.Steuerarten.ToList().ForEach(steuer => { var wert = werte.ToList().Find(wert => wert.Steuerart.Equals(steuer.Steuerart)); if (wert == null) { wert = new Betrag { Betraege = new List <double>(), Steuerart = steuer.Steuerart }; werte.Add(wert); } wert.Betraege.Add(steuer.Betrag); }); Labels[index] = item.Datum.ToString("MM.yyyy", CultureInfo.CurrentCulture); index++; }); StackedColumnSeries <double>[] series = new StackedColumnSeries <double> [werte.Count]; index = 0; werte.ToList().ForEach(wert => { var StackedColoumn = new StackedColumnSeries <double> { Values = wert.Betraege, Name = wert.Steuerart, TooltipLabelFormatter = (point) => wert.Steuerart + " " + point.PrimaryValue.ToString("N2") + "€" }; series.SetValue(StackedColoumn, index); index++; }); XAxes.First().Labels = Labels; XAxes.First().Name = "Monat"; YAxes.First().Name = "Betrag"; Series = series; RaisePropertyChanged(nameof(Series)); RaisePropertyChanged(nameof(XAxes)); RaisePropertyChanged(nameof(YAxes)); } RequestIsWorking = false; }
public void SetBarSeries(DataPtSet PollenDataSet, SeriesChartType ChartMode) { DataList = PollenDataSet; ChartType = ChartMode; List <double> DbList = new List <double>(); RowSeries AdjacentRow = new RowSeries(); StackedRowSeries StackRow = new StackedRowSeries(); ColumnSeries AdjacentCol = new ColumnSeries(); StackedColumnSeries StackCol = new StackedColumnSeries(); StackRow.LabelsPosition = BarLabelPosition.Parallel; StackCol.LabelsPosition = BarLabelPosition.Parallel; AdjacentCol.LabelsPosition = BarLabelPosition.Parallel; StackCol.LabelsPosition = BarLabelPosition.Parallel; AdjacentRow = (SetProperties(AdjacentRow, DataList.Points[0])); StackRow = (SetProperties(StackRow, DataList.Points[0])); AdjacentCol = (SetProperties(AdjacentCol, DataList.Points[0])); StackCol = (SetProperties(StackCol, DataList.Points[0])); switch (ChartType) { case SeriesChartType.ColumnAdjacent: ChartSequence = AdjacentCol; foreach (DataPt D in DataList.Points) { ColumnSeries NewSeries = new ColumnSeries { Values = new ChartValues <double> { D.Number } }; NewSeries.LabelsPosition = BarLabelPosition.Parallel; NewSeries = SetProperties(NewSeries, D); DbList.Add(D.Number); ChartSeries.Add(NewSeries); } break; case SeriesChartType.ColumnStack: StackCol.StackMode = StackMode.Values; ChartSequence = StackCol; foreach (DataPt D in DataList.Points) { StackedColumnSeries NewSeries = new StackedColumnSeries { Values = new ChartValues <double> { D.Number } }; NewSeries = SetProperties(NewSeries, D); DbList.Add(D.Number); ChartSeries.Add(NewSeries); } break; case SeriesChartType.ColumnStack100: StackCol.StackMode = StackMode.Percentage; ChartSequence = StackCol; foreach (DataPt D in DataList.Points) { StackedColumnSeries NewSeries = new StackedColumnSeries { Values = new ChartValues <double> { D.Number } }; NewSeries = SetProperties(NewSeries, D); DbList.Add(D.Number); ChartSeries.Add(NewSeries); } break; case SeriesChartType.BarAdjacent: ChartSequence = AdjacentRow; foreach (DataPt D in DataList.Points) { RowSeries NewSeries = new RowSeries { Values = new ChartValues <double> { D.Number } }; NewSeries.LabelsPosition = BarLabelPosition.Parallel; NewSeries = SetProperties(NewSeries, D); DbList.Add(D.Number); ChartSeries.Add(NewSeries); } break; case SeriesChartType.BarStack: StackRow.StackMode = StackMode.Values; ChartSequence = StackRow; foreach (DataPt D in DataList.Points) { StackedRowSeries NewSeries = new StackedRowSeries { Values = new ChartValues <double> { D.Number } }; NewSeries = SetProperties(NewSeries, D); DbList.Add(D.Number); ChartSeries.Add(NewSeries); } break; case SeriesChartType.BarStack100: StackRow.StackMode = StackMode.Percentage; ChartSequence = StackRow; foreach (DataPt D in DataList.Points) { StackedRowSeries NewSeries = new StackedRowSeries { Values = new ChartValues <double> { D.Number } }; NewSeries = SetProperties(NewSeries, D); DbList.Add(D.Number); ChartSeries.Add(NewSeries); } break; } ChartSequence.Values = new ChartValues <double>(DbList.ToArray()); //Set unique properties of the control }
public DashboardViewModel(Usuario modelUsuario) { ModelUsuario = modelUsuario; #region Información Lecciones Aprendidas #region Gráfica Motivo Lección aprendida Series = new SeriesCollection(); List <FO_Item> listaMotivoCambio = new List <FO_Item>(); listaMotivoCambio = DataManagerControlDocumentos.GetMotivoCambioGrafica(); foreach (var item7 in listaMotivoCambio) { PieSeries pieSeries = new PieSeries(); pieSeries.Title = item7.Nombre; pieSeries.Values = new ChartValues <ObservableValue> { new ObservableValue(item7.Valor) }; pieSeries.DataLabels = true; Series.Add(pieSeries); } #endregion #endregion #region Gráfica de cantidad de lecciones aprendidas últimos 5 meses. List <FO_Item> listaLeccionesMensual = DataManagerControlDocumentos.GetTotalLeccionesPorMes(); ColumnSeries columnaSerie = new ColumnSeries(); columnaSerie.Title = "Cantidad de Lecciones Aprendidas"; columnaSerie.Values = new ChartValues <double>(); listaLeccionesMensual.Reverse(); foreach (FO_Item item1 in listaLeccionesMensual) { columnaSerie.Values.Add(item1.Valor); } Labels = new string[listaLeccionesMensual.Count]; int j = 0; foreach (var item2 in listaLeccionesMensual) { Labels[j] = item2.Nombre; j++; } SerieLeccionesMensual = new SeriesCollection(); SerieLeccionesMensual.Add(columnaSerie); #endregion //Obtenermos el total de lecciones aprendidas. TotalLeccionesAprendidas = DataManagerControlDocumentos.GetTotalLecciones(); //Obtenemos el total de lecciones aprendidas en el mes actual. TotalLeccionesMesActual = DataManagerControlDocumentos.GetTotalLeccionesMesActual(); #region Lecciones aprendidas por usuario SeriesLeccionesUsuario = new SeriesCollection(); List <FO_Item> listaLeccionesUsuario = new List <FO_Item>(); listaLeccionesUsuario = DataManagerControlDocumentos.GetCantidadLeccionesAprendidasByUsuario(); foreach (var item7 in listaLeccionesUsuario) { PieSeries pieSeries = new PieSeries(); pieSeries.Title = item7.Nombre; pieSeries.Values = new ChartValues <ObservableValue> { new ObservableValue(item7.Valor) }; pieSeries.DataLabels = true; SeriesLeccionesUsuario.Add(pieSeries); } #endregion #endregion #region Información Control de Documentos TotalDocumentos = DataManagerControlDocumentos.GetGridDocumentos(string.Empty).Count; TotalDocumentosPorLiberar = DataManagerControlDocumentos.GetDocumentos_PendientesLiberar("").Count; TotalDocumentosVencidos = DataManagerControlDocumentos.GetDocumentosAprobadosNoRecibidos(true).Count; TotalDocumentosPorRevisar = DataManagerControlDocumentos.GetDocumentosValidar("", "").Count; if (TotalDocumentosVencidos == 0 && TotalDocumentosPorLiberar == 0) { ValueAngularDoc = 100; } else { ValueAngularDoc = 100 - ((Convert.ToDouble(TotalDocumentosVencidos) / Convert.ToDouble(TotalDocumentosPorLiberar)) * 100); } SerieDocumentosLiberados = new SeriesCollection(); StackedColumnSeries columnaManual = new StackedColumnSeries(); columnaManual.StackMode = StackMode.Values; columnaManual.DataLabels = true; columnaManual.Title = "MANUAL"; StackedColumnSeries columnaAutomatico = new StackedColumnSeries(); columnaAutomatico.StackMode = StackMode.Values; columnaAutomatico.DataLabels = true; columnaAutomatico.Title = "AUTOMÁTICO"; int[] valores = new int[] { 3, 2, 1, 0, -1 }; int[] valoresManual = new int[5]; int[] valoresAutomatico = new int[5]; LabelsDocumentoLiberados = new string[valoresAutomatico.Length]; j = 0; foreach (var item2 in valores) { FO_Item foItem = DataManagerControlDocumentos.GetCantidadDocumentoLiberado("MANUAL", item2); valoresManual[j] = Convert.ToInt32(foItem.Valor); LabelsDocumentoLiberados[j] = foItem.Nombre; j++; } j = 0; foreach (var item2 in valores) { FO_Item foItem = DataManagerControlDocumentos.GetCantidadDocumentoLiberado("AUTOMATICO", item2); valoresAutomatico[j] = Convert.ToInt32(foItem.Valor); j++; } columnaManual.Values = new ChartValues <int>(valoresManual); columnaAutomatico.Values = new ChartValues <int>(valoresAutomatico); SerieDocumentosLiberados.Add(columnaManual); SerieDocumentosLiberados.Add(columnaAutomatico); #endregion }
public void getcartesianChart3() { DateTime NOW = DateTime.Now; if (DateTime.Compare(NOW, OperateForm.end_time) > 0) { NOW = OperateForm.end_time; } if (DateTime.Compare(NOW, OperateForm.start_time) < 0) { NOW = OperateForm.start_time; } TimeSpan timeSpan = NOW - OperateForm.start_time; int len = (int)double.Parse(timeSpan.TotalMinutes.ToString()); len = Math.Min(300, len); len = Math.Max(0, len); len /= 10; cartesianChart3.Series.Clear(); for (int i = 0; i < 4; ++i) { StackedColumnSeries stackedColumnSeries = new StackedColumnSeries(); stackedColumnSeries.StackMode = StackMode.Values; stackedColumnSeries.DataLabels = false; stackedColumnSeries.Title = OperateForm.resultName[i]; stackedColumnSeries.Values = new ChartValues <double>(); DateTime st = OperateForm.start_time; DateTime nx = new DateTime(); for (int j = 0; j < len; ++j) { nx = st.AddMinutes(10); try { if (OperateForm.result[i] != 4) { stackedColumnSeries.Values.Add(-double.Parse(DBTool.getTotSubmitByStEdAndResult(st.ToString(), nx.ToString(), OperateForm.result[i]).ToString())); } else { stackedColumnSeries.Values.Add(double.Parse(DBTool.getTotSubmitByStEdAndResult(st.ToString(), nx.ToString(), OperateForm.result[i]).ToString())); } } catch (Exception ex) { print("网络连接中断!"); Application.Exit(); } st = nx; } cartesianChart3.Series.Add(stackedColumnSeries); } string[] labels2 = new string[len]; for (int i = 0; i < len; ++i) { labels2[i] = ((i + 1) * 10).ToString(); } cartesianChart3.AxisX.Clear(); cartesianChart3.AxisX.Add(new Axis { Labels = labels2, Separator = new Separator // force the separator step to 1, so it always display all labels { Step = 1, IsEnabled = false //disable it to make it invisible. }, LabelsRotation = 0 }); cartesianChart3.AxisY.Clear(); cartesianChart3.AxisY.Add(new Axis { LabelFormatter = value => value + "" }); }
private void SetStackColumnProperties(StackedColumnSeries Ser, int Position) { Ser.LabelsPosition = GetPosition(Position); }
//COLUMN STACK CHART ######################################################################################################################### public void SetStackColumnChart(bool IsStretched) { if (IsStretched) { if (ChartType != SeriesChartType.ColumnStack100) { Element.Series.Clear(); } ChartType = SeriesChartType.ColumnStack100; } else { if (ChartType != SeriesChartType.ColumnStack) { Element.Series.Clear(); } ChartType = SeriesChartType.ColumnStack; } List <List <double> > DV = new List <List <double> >(); //Populate Data Set for (int i = 0; i < DataGrid.Sets.Count; i++) { List <double> tDV = new List <double>(); for (int j = 0; j < DataGrid.Sets[i].Points.Count; j++) { tDV.Add(DataGrid.Sets[i].Points[j].Number); } DV.Add(tDV); } int C = Element.Series.Count; int S = DV.Count; for (int i = C; i < S; i++) { StackedColumnSeries CS = new StackedColumnSeries(); if (IsStretched) { CS.StackMode = StackMode.Percentage; } else { CS.StackMode = StackMode.Values; } Element.Series.Add(CS); Element.Series[i].Values = new ChartValues <double>(DV[i].ToArray()); } C = Element.Series.Count; if (C > S) { for (int i = S; i < C; i++) { Element.Series.RemoveAt(Element.Series.Count - 1); } } C = Element.Series.Count; for (int i = 0; i < S; i++) { int T = Element.Series[i].Values.Count; int V = DV[i].Count; for (int j = T; j < V; j++) { Element.Series[i].Values.Add(1.0); } } for (int i = 0; i < S; i++) { int T = Element.Series[i].Values.Count; int V = DV[i].Count; if (T > V) { for (int j = V; j < T; j++) { Element.Series[i].Values.RemoveAt(Element.Series[i].Values.Count - 1); } } } for (int i = 0; i < S; i++) { int V = DV[i].Count; for (int j = 0; j < V; j++) { Element.Series[i].Values[j] = DV[i][j]; SetStackColumnProperties((StackedColumnSeries)Element.Series[i], (int)DataGrid.Sets[i].Points[j].Label.Alignment); SetSequenceProperties(i, j, (StackedColumnSeries)Element.Series[i]); } } }
private void cmbAzmon_SelectionChanged(object sender, SelectionChangedEventArgs e) { gpChart.Visibility = Visibility.Visible; double[] values = new double[] { }; try { dynamic getGroupName = cmbGroups.SelectedItem; string gpName = getGroupName.GroupName; dynamic getDateText = cmbAzmon.SelectedItem; string dPass = getDateText.DatePass; using (var db = new DataClass.myDbContext()) { dynamic selectedItem = dataGrid.SelectedItems[0]; long uId = selectedItem.Id; var data = db.AHistories.Where(x => x.UserId == uId && x.DatePass == dPass && x.GroupName.Equals(gpName)).Select(x => x).OrderByDescending(x => x.DatePass).ToList(); values = new double[] { data.FirstOrDefault().TrueItem, data.FirstOrDefault().FalseItem, data.FirstOrDefault().NoneItem }; Series series = new ColumnSeries(); switch (FindElement.Settings.ChartType ?? 0) { case 0: series = new ColumnSeries { }; break; case 1: series = new StackedColumnSeries { }; break; case 2: series = new LineSeries { }; break; case 3: series = new StepLineSeries { }; break; case 4: series = new StackedAreaSeries { }; break; } if (series.GetType() == typeof(ColumnSeries)) { AchievementChart.Series.Add(new ColumnSeries { Values = new ChartValues <double>(values), StrokeDashArray = new System.Windows.Media.DoubleCollection(20) }); } else if (series.GetType() == typeof(LineSeries)) { AchievementChart.Series.Add(new LineSeries { Values = new ChartValues <double>(values), StrokeDashArray = new System.Windows.Media.DoubleCollection(20) }); } else if (series.GetType() == typeof(StackedAreaSeries)) { AchievementChart.Series.Add(new StackedAreaSeries { Values = new ChartValues <double>(values), StrokeDashArray = new System.Windows.Media.DoubleCollection(20) }); } else if (series.GetType() == typeof(StackedColumnSeries)) { AchievementChart.Series.Add(new StackedColumnSeries { Values = new ChartValues <double>(values), StrokeDashArray = new System.Windows.Media.DoubleCollection(20) }); } else if (series.GetType() == typeof(StepLineSeries)) { AchievementChart.Series.Add(new StepLineSeries { Values = new ChartValues <double>(values), StrokeDashArray = new System.Windows.Media.DoubleCollection(20) }); } AchievementChart.AxisX.Add(new Axis { Labels = new string[] { "پاسخ صحیح", "پاسخ غلط", "بدون پاسخ" }, Separator = new LiveCharts.Wpf.Separator { } }); txtName.Text = dPass; txtBook.Text = gpName; } } catch (Exception) { } }
public ChartViewModel(CoinViewModel coinVm) { this.Hide = new DelegateCommand(() => { this.IsShow = false; }); _coinVm = coinVm; var mapper = Mappers.Xy <MeasureModel>() .X(model => model.DateTime.Ticks) //use DateTime.Ticks as X .Y(model => model.Value); //use the value property as Y //lets save the mapper globally. Charting.For <MeasureModel>(mapper); string DateTimeFormatter(double value) => new DateTime((long)value).ToString("HH:mm"); string SpeedFormatter(double value) => value.ToUnitSpeedText(); //AxisStep forces the distance between each separator in the X axis double axisStep = TimeSpan.FromMinutes(1).Ticks; //AxisUnit forces lets the axis know that we are plotting Minutes //this is not always necessary, but it can prevent wrong labeling double axisUnit = TimeSpan.TicksPerMinute; var axisYSpeed = new Axis() { LabelFormatter = SpeedFormatter, MinValue = 0, Separator = new Separator(), Foreground = SAxisForeground, FontSize = 13, Position = AxisPosition.RightTop }; var axisYOnlineCount = new Axis() { LabelFormatter = value => Math.Round(value, 0) + "miner", Separator = new Separator(), Foreground = SAxisForeground, MinValue = 0, FontSize = 11 }; var axisYShareCount = new Axis() { LabelFormatter = value => Math.Round(value, 0) + "share", Separator = new Separator(), Foreground = SAxisForeground, MinValue = 0, FontSize = 11, Position = AxisPosition.RightTop }; this._axisY = new AxesCollection { axisYOnlineCount, axisYSpeed, axisYShareCount }; DateTime now = DateTime.Now; this._axisX = new AxesCollection() { new Axis() { LabelFormatter = DateTimeFormatter, MaxValue = now.Ticks, MinValue = now.Ticks - TimeSpan.FromMinutes(NTMinerRoot.SpeedHistoryLengthByMinute).Ticks, Unit = axisUnit, Separator = new Separator() { Step = axisStep }, Foreground = SAxisForeground, FontSize = 12, } }; LineSeries mainCoinSpeedLs = new LineSeries { Title = "speed", DataLabels = false, PointGeometrySize = 0, StrokeThickness = 1, ScalesYAt = 1, Values = new ChartValues <MeasureModel>() }; LineSeries onlineCountLs = new LineSeries { Title = "onlineCount", DataLabels = false, PointGeometrySize = 0, StrokeThickness = 1, ScalesYAt = 0, Fill = STransparent, Stroke = OnlineColor, Values = new ChartValues <MeasureModel>() }; LineSeries miningCountLs = new LineSeries { Title = "miningCount", DataLabels = false, PointGeometrySize = 0, StrokeThickness = 1, ScalesYAt = 0, Fill = STransparent, Stroke = MiningColor, Values = new ChartValues <MeasureModel>() }; _rejectValues = new ChartValues <MeasureModel>(); _acceptValues = new ChartValues <MeasureModel>(); StackedColumnSeries rejectScs = new StackedColumnSeries { Title = "rejectShare", Values = _rejectValues, DataLabels = false, ScalesYAt = 2, MaxColumnWidth = 7 }; StackedColumnSeries acceptScs = new StackedColumnSeries { Title = "acceptShare", Values = _acceptValues, DataLabels = false, ScalesYAt = 2, MaxColumnWidth = 7 }; this._series = new SeriesCollection() { mainCoinSpeedLs, rejectScs, acceptScs, miningCountLs, onlineCountLs }; }
public void AddLevel3Control(Point p) { switch (ControlTag) { case 31: { PieChart pieChart = new PieChart(); pieChart.Width = 400; pieChart.Height = 300; pieChart.LegendLocation = LegendLocation.Bottom; PieSeries pieSeries = new PieSeries(); pieSeries.Values = new ChartValues <int> { 5 }; pieSeries.Title = "A"; pieSeries.DataLabels = true; PieSeries pieSeries2 = new PieSeries(); pieSeries2.Values = new ChartValues <int> { 3 }; pieSeries2.Title = "B"; pieSeries2.DataLabels = true; PieSeries pieSeries3 = new PieSeries(); pieSeries3.Values = new ChartValues <int> { 6 }; pieSeries3.Title = "C"; pieSeries3.DataLabels = true; pieChart.Series.Add(pieSeries); pieChart.Series.Add(pieSeries2); pieChart.Series.Add(pieSeries3); pieChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); Panel.SetZIndex(pieChart, 0); Canvas.SetLeft(pieChart, p.X - pieChart.DesiredSize.Width / 2); Canvas.SetTop(pieChart, p.Y - pieChart.DesiredSize.Height / 2); AddEvents(pieChart); DesignCanvas.Children.Add(pieChart); } break; case 32: { CartesianChart cartesianChart = new CartesianChart(); cartesianChart.Width = 400; cartesianChart.Height = 300; cartesianChart.LegendLocation = LegendLocation.Bottom; ColumnSeries columnSeries = new ColumnSeries(); columnSeries.Values = new ChartValues <int> { 5 }; columnSeries.Title = "A"; columnSeries.DataLabels = true; ColumnSeries columnSeries2 = new ColumnSeries(); columnSeries2.Values = new ChartValues <int> { 3 }; columnSeries2.Title = "B"; columnSeries2.DataLabels = true; ColumnSeries columnSeries3 = new ColumnSeries(); columnSeries3.Values = new ChartValues <int> { 6 }; columnSeries3.Title = "C"; columnSeries3.DataLabels = true; cartesianChart.Series.Add(columnSeries); cartesianChart.Series.Add(columnSeries2); cartesianChart.Series.Add(columnSeries3); cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); Panel.SetZIndex(cartesianChart, 0); Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2); Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2); AddEvents(cartesianChart); DesignCanvas.Children.Add(cartesianChart); } break; case 33: { CartesianChart cartesianChart = new CartesianChart(); cartesianChart.Width = 400; cartesianChart.Height = 300; cartesianChart.LegendLocation = LegendLocation.Bottom; StackedColumnSeries columnSeries = new StackedColumnSeries(); columnSeries.Values = new ChartValues <int> { 5, 6, 5 }; columnSeries.Title = "A"; columnSeries.DataLabels = true; StackedColumnSeries columnSeries2 = new StackedColumnSeries(); columnSeries2.Values = new ChartValues <int> { 3, 4, 2 }; columnSeries2.Title = "B"; columnSeries2.DataLabels = true; StackedColumnSeries columnSeries3 = new StackedColumnSeries(); columnSeries3.Values = new ChartValues <int> { 6, 3, 3 }; columnSeries3.Title = "C"; columnSeries3.DataLabels = true; cartesianChart.Series.Add(columnSeries); cartesianChart.Series.Add(columnSeries2); cartesianChart.Series.Add(columnSeries3); cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); Panel.SetZIndex(cartesianChart, 0); Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2); Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2); AddEvents(cartesianChart); DesignCanvas.Children.Add(cartesianChart); } break; case 34: { CartesianChart cartesianChart = new CartesianChart(); cartesianChart.Width = 400; cartesianChart.Height = 300; cartesianChart.LegendLocation = LegendLocation.Bottom; RowSeries CarSeries = new RowSeries(); CarSeries.Values = new ChartValues <int> { 5 }; CarSeries.Title = "A"; CarSeries.DataLabels = true; RowSeries CarSeries2 = new RowSeries(); CarSeries2.Values = new ChartValues <int> { 3 }; CarSeries2.Title = "B"; CarSeries2.DataLabels = true; RowSeries CarSeries3 = new RowSeries(); CarSeries3.Values = new ChartValues <int> { 6 }; CarSeries3.Title = "C"; CarSeries3.DataLabels = true; cartesianChart.Series.Add(CarSeries); cartesianChart.Series.Add(CarSeries2); cartesianChart.Series.Add(CarSeries3); cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); Panel.SetZIndex(cartesianChart, 0); Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2); Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2); AddEvents(cartesianChart); DesignCanvas.Children.Add(cartesianChart); } break; case 35: { CartesianChart cartesianChart = new CartesianChart(); cartesianChart.Width = 400; cartesianChart.Height = 300; cartesianChart.LegendLocation = LegendLocation.Bottom; StackedRowSeries columnSeries = new StackedRowSeries(); columnSeries.Values = new ChartValues <int> { 5, 6, 5 }; columnSeries.Title = "A"; columnSeries.DataLabels = true; StackedRowSeries columnSeries2 = new StackedRowSeries(); columnSeries2.Values = new ChartValues <int> { 3, 4, 2 }; columnSeries2.Title = "B"; columnSeries2.DataLabels = true; StackedRowSeries columnSeries3 = new StackedRowSeries(); columnSeries3.Values = new ChartValues <int> { 6, 3, 3 }; columnSeries3.Title = "C"; columnSeries3.DataLabels = true; cartesianChart.Series.Add(columnSeries); cartesianChart.Series.Add(columnSeries2); cartesianChart.Series.Add(columnSeries3); cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); Panel.SetZIndex(cartesianChart, 0); Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2); Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2); AddEvents(cartesianChart); DesignCanvas.Children.Add(cartesianChart); } break; case 36: { CartesianChart lineChart = new CartesianChart(); lineChart.Width = 400; lineChart.Height = 300; lineChart.LegendLocation = LegendLocation.Bottom; LineSeries lineSeries = new LineSeries(); lineSeries.Values = new ChartValues <int> { 5, 6, 8 }; lineSeries.Title = "A"; lineSeries.DataLabels = true; LineSeries lineSeries2 = new LineSeries(); lineSeries2.Values = new ChartValues <int> { 3, 2, 5 }; lineSeries2.Title = "B"; lineSeries2.DataLabels = true; LineSeries lineSeries3 = new LineSeries(); lineSeries3.Values = new ChartValues <int> { 6, 5, 3 }; lineSeries3.Title = "C"; lineSeries3.DataLabels = true; lineChart.Series.Add(lineSeries); lineChart.Series.Add(lineSeries2); lineChart.Series.Add(lineSeries3); lineChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); Panel.SetZIndex(lineChart, 0); Canvas.SetLeft(lineChart, p.X - lineChart.DesiredSize.Width / 2); Canvas.SetTop(lineChart, p.Y - lineChart.DesiredSize.Height / 2); AddEvents(lineChart); DesignCanvas.Children.Add(lineChart); } break; case 37: { CartesianChart cartesianChart = new CartesianChart(); cartesianChart.Width = 400; cartesianChart.Height = 300; cartesianChart.LegendLocation = LegendLocation.Bottom; StackedAreaSeries columnSeries = new StackedAreaSeries(); columnSeries.Values = new ChartValues <int> { 2, 4, 6 }; columnSeries.Title = "A"; columnSeries.DataLabels = true; StackedAreaSeries columnSeries2 = new StackedAreaSeries(); columnSeries2.Values = new ChartValues <int> { 3, 5, 7 }; columnSeries2.Title = "B"; columnSeries2.DataLabels = true; StackedAreaSeries columnSeries3 = new StackedAreaSeries(); columnSeries3.Values = new ChartValues <int> { 4, 6, 8 }; columnSeries3.Title = "C"; columnSeries3.DataLabels = true; cartesianChart.Series.Add(columnSeries); cartesianChart.Series.Add(columnSeries2); cartesianChart.Series.Add(columnSeries3); cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); Panel.SetZIndex(cartesianChart, 0); Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2); Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2); AddEvents(cartesianChart); DesignCanvas.Children.Add(cartesianChart); } break; case 38: { CartesianChart cartesianChart = new CartesianChart(); cartesianChart.Width = 400; cartesianChart.Height = 300; cartesianChart.LegendLocation = LegendLocation.Bottom; StepLineSeries columnSeries = new StepLineSeries(); columnSeries.Values = new ChartValues <int> { 1, 2, 1 }; columnSeries.Title = "A"; columnSeries.DataLabels = true; StepLineSeries columnSeries2 = new StepLineSeries(); columnSeries2.Values = new ChartValues <int> { 3, 5, 6 }; columnSeries2.Title = "B"; columnSeries2.DataLabels = true; StepLineSeries columnSeries3 = new StepLineSeries(); columnSeries3.Values = new ChartValues <int> { 6, 7, 7 }; columnSeries3.Title = "C"; columnSeries3.DataLabels = true; cartesianChart.Series.Add(columnSeries); cartesianChart.Series.Add(columnSeries2); cartesianChart.Series.Add(columnSeries3); cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); Panel.SetZIndex(cartesianChart, 0); Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2); Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2); AddEvents(cartesianChart); DesignCanvas.Children.Add(cartesianChart); } break; } }