static void PrepareXYDiagram3D(XYDiagram3D diagram) { if (diagram == null) { return; } diagram.AxisX = new AxisX3D(); diagram.AxisX.Label = new AxisLabel(); diagram.AxisX.Label.Visible = false; }
static void PrepareXYDiagram3D(XYDiagram3D diagram) { if (diagram == null) { return; } diagram.AxisX = new AxisX3D { Label = new AxisLabel { Visible = false } }; }
private void LoadChart(ViewType viewType) { this.chartControl1.Series.Clear(); chartTitle = new ChartTitle(); if (this._statsType == "pipeline") { chartTitle.Text = "管线长度统计图 单位:米"; } else { chartTitle.Text = "管点数量统计图 单位:个"; } chartTitle.Font = new System.Drawing.Font("宋体", 15f); this.chartControl1.Titles.Clear(); this.chartControl1.Titles.Add(chartTitle); if (_dtstats != null) { try { _dtshow = ConvertDTForChart(_dtstats); if (viewType == ViewType.Pie) { try { //将_dtshow转置 DataTable _dtpie = new DataTable(); _dtpie.Columns.Add(_dtshow.Columns[0].ColumnName); for (int i = 0; i < _dtshow.Rows.Count; i++) { _dtpie.Columns.Add(_dtshow.Rows[i][0].ToString(), typeof(double)); } for (int i = 1; i < _dtshow.Columns.Count; i++) { DataRow dr = _dtpie.NewRow(); dr[0] = _dtshow.Columns[i].ColumnName.ToString(); for (int j = 0; j < _dtshow.Rows.Count; j++) { double temp = 0; double.TryParse(_dtshow.Rows[j][i].ToString(), out temp); dr[j + 1] = temp; //if (_dtshow.Rows[j][i].ToString() == null) // dr[j + 1] = 0.0; //else // dr[j + 1] = _dtshow.Rows[j][i]; } _dtpie.Rows.Add(dr); } for (int i = 1; i < _dtpie.Columns.Count; i++) { int index = this.chartControl1.Series.Add(_dtpie.Columns[i].ColumnName, viewType); Series series = this.chartControl1.Series[index]; series.DataSource = _dtpie; series.Visible = true; series.ArgumentScaleType = ScaleType.Qualitative; series.ValueScaleType = ScaleType.Numerical; series.ArgumentDataMember = _dtpie.Columns[0].ColumnName; series.ValueDataMembers.AddRange(new string[] { _dtpie.Columns[i].ColumnName }); // 显示标签 series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; series.Label.PointOptions.PointView = PointView.ArgumentAndValues;//显示表示的信息和数据 series.LegendPointOptions.PointView = PointView.Argument; //series.Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent; //用百分比表示 //series.Label.PointOptions.ValueNumericOptions.Precision = 2; //显示一个图例 if (i > 1) { series.ShowInLegend = false; } } } catch { } } else if (viewType == ViewType.Bar) { for (int i = 1; i < _dtshow.Columns.Count; i++) { int index = this.chartControl1.Series.Add(_dtshow.Columns[i].ColumnName, viewType); Series series = this.chartControl1.Series[index]; series.DataSource = _dtshow; series.Visible = true; series.ArgumentScaleType = ScaleType.Qualitative; series.ValueScaleType = ScaleType.Numerical; series.ArgumentDataMember = _dtshow.Columns[0].ColumnName; series.ValueDataMembers.AddRange(new string[] { _dtshow.Columns[i].ColumnName }); // 显示标签 //series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; series.Label.PointOptions.PointView = PointView.ArgumentAndValues; //显示表示的信息和数据 series.Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent; //用百分比表示 series.Label.PointOptions.ValueNumericOptions.Precision = 2; } } else if (viewType == ViewType.Line) { for (int i = 1; i < _dtshow.Columns.Count; i++) { int index = this.chartControl1.Series.Add(_dtshow.Columns[i].ColumnName, viewType); Series series = this.chartControl1.Series[index]; series.DataSource = _dtshow; series.Visible = true; series.ArgumentScaleType = ScaleType.Qualitative; series.ValueScaleType = ScaleType.Numerical; series.ArgumentDataMember = _dtshow.Columns[0].ColumnName; series.ValueDataMembers.AddRange(new string[] { _dtshow.Columns[i].ColumnName }); } } else if (viewType == ViewType.Bar3D) { for (int i = 1; i < _dtshow.Columns.Count; i++) { int index = this.chartControl1.Series.Add(_dtshow.Columns[i].ColumnName, viewType); Series series = this.chartControl1.Series[index]; series.DataSource = _dtshow; series.Visible = true; series.ArgumentScaleType = ScaleType.Qualitative; series.ValueScaleType = ScaleType.Numerical; series.ArgumentDataMember = _dtshow.Columns[0].ColumnName; series.ValueDataMembers.AddRange(new string[] { _dtshow.Columns[i].ColumnName }); XYDiagram3D xYDiagram3D = this.chartControl1.Diagram as XYDiagram3D; xYDiagram3D.RuntimeRotation = true; xYDiagram3D.RuntimeScrolling = true; xYDiagram3D.RuntimeZooming = true; xYDiagram3D.PerspectiveEnabled = true; } } else if (viewType == ViewType.Line3D) { for (int i = 1; i < _dtshow.Columns.Count; i++) { int index = this.chartControl1.Series.Add(_dtshow.Columns[i].ColumnName, viewType); Series series = this.chartControl1.Series[index]; series.DataSource = _dtshow; series.Visible = true; series.ArgumentScaleType = ScaleType.Qualitative; series.ValueScaleType = ScaleType.Numerical; series.ArgumentDataMember = _dtshow.Columns[0].ColumnName; series.ValueDataMembers.AddRange(new string[] { _dtshow.Columns[i].ColumnName }); XYDiagram3D xYDiagram3D2 = this.chartControl1.Diagram as XYDiagram3D; xYDiagram3D2.RuntimeRotation = true; xYDiagram3D2.RuntimeScrolling = true; xYDiagram3D2.RuntimeZooming = true; xYDiagram3D2.PerspectiveEnabled = true; } } #region 备用代码 /*for (int i = 1; i < _dtshow.Columns.Count; i++) * { * int index = this.chartControl1.Series.Add(_dtshow.Columns[i].ColumnName, viewType); * Series series = this.chartControl1.Series[index]; * series.DataSource = _dtshow; * series.Visible = true; * series.ArgumentScaleType = ScaleType.Qualitative; * series.ValueScaleType = ScaleType.Numerical; * series.ArgumentDataMember = _dtshow.Columns[0].ColumnName; * series.ValueDataMembers.AddRange(new string[] * { * _dtshow.Columns[i].ColumnName * }); * if (viewType == ViewType.Pie) * { * try * { * //将_dtshow转置 * DataTable _dtpie = new DataTable(); * _dtpie.Columns.Add(_dtshow.Columns[0].ColumnName); * foreach (DataRow dr in _dtshow.Rows) * { * _dtpie.Columns.Add(dr[_dtshow.Columns[0].ColumnName].ToString()); * } * for (int j = 1; j < _dtshow.Columns.Count; j++) * { * DataRow dr = _dtpie.NewRow(); * dr[_dtshow.Columns[0].ColumnName] = _dtshow.Columns[j].ColumnName; * int n = 1; * for (int k = 0; k < _dtshow.Rows.Count; k++) * { * dr[_dtpie.Columns[n].ColumnName] = _dtshow.Rows[k][j].ToString(); * n++; * } * _dtpie.Rows.Add(dr); * } * * } * catch { } * // 显示标签 * series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; * series.Label.PointOptions.PointView = PointView.ArgumentAndValues; //显示表示的信息和数据 * //series.Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent; //用百分比表示 * //series.Label.PointOptions.ValueNumericOptions.Precision = 2; * //显示一个图例 * if (i > 1) * { * series.ShowInLegend = false; * } * } * else if(viewType == ViewType.Bar) * { * // 显示标签 * //series.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; * series.Label.PointOptions.PointView = PointView.ArgumentAndValues; //显示表示的信息和数据 * series.Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent; //用百分比表示 * series.Label.PointOptions.ValueNumericOptions.Precision = 2; * * * } * else if (viewType == ViewType.Bar3D) * { * * XYDiagram3D xYDiagram3D = this.chartControl1.Diagram as XYDiagram3D; * xYDiagram3D.RuntimeRotation = true; * xYDiagram3D.RuntimeScrolling = true; * xYDiagram3D.RuntimeZooming = true; * xYDiagram3D.PerspectiveEnabled = true; * * } * else if (viewType == ViewType.Line3D) * { * XYDiagram3D xYDiagram3D2 = this.chartControl1.Diagram as XYDiagram3D; * xYDiagram3D2.RuntimeRotation = true; * xYDiagram3D2.RuntimeScrolling = true; * xYDiagram3D2.RuntimeZooming = true; * xYDiagram3D2.PerspectiveEnabled = true; * } * }*/ #endregion } catch { } } }
void ChangeDiagram(SeriesTypeItem item) { if (item == null) { return; } chart.Diagram = (Diagram)Activator.CreateInstance(item.DiagramType); bool isAreaFullStackedSeries = false; Axis axisX = null, axisY = null; XYDiagram2D diagram2D = chart.Diagram as XYDiagram2D; if (diagram2D != null) { chart.Legend.HorizontalPosition = HorizontalPosition.RightOutside; diagram2D.AxisX = new AxisX2D(); diagram2D.AxisY = new AxisY2D(); axisX = diagram2D.AxisX; axisY = diagram2D.AxisY; isAreaFullStackedSeries = item.SeriesType == typeof(AreaFullStackedSeries2D); } else { chart.Legend.HorizontalPosition = HorizontalPosition.Right; XYDiagram3D diagram3D = chart.Diagram as XYDiagram3D; if (diagram3D != null) { diagram3D.AxisX = new AxisX3D(); diagram3D.AxisY = new AxisY3D(); axisX = diagram3D.AxisX; axisY = diagram3D.AxisY; diagram3D.SeriesPadding = 0.5; diagram3D.SeriesDistance = 1.5; isAreaFullStackedSeries = item.SeriesType == typeof(AreaFullStackedSeries3D); } } if (axisX != null) { axisX.Label = new AxisLabel() { TextPattern = "{A:m}" }; } if (axisY != null) { if (isAreaFullStackedSeries) { axisY.Label = new AxisLabel() { TextPattern = "{VP:P0}" } } ; else { axisY.Title = new AxisTitle(); axisY.Title.Content = "Number of visitors"; } } Series politicsSeries = (Series)Activator.CreateInstance(item.SeriesType); politicsSeries.DisplayName = "Politics"; politicsSeries.ValueDataMember = "Politics"; PrepareSeriesAnimation(politicsSeries, 0); Series entertainmentSeries = (Series)Activator.CreateInstance(item.SeriesType); entertainmentSeries.DisplayName = "Entertainment"; entertainmentSeries.ValueDataMember = "Entertainment"; PrepareSeriesAnimation(entertainmentSeries, 1); Series travelSeries = (Series)Activator.CreateInstance(item.SeriesType); travelSeries.DisplayName = "Travel"; travelSeries.ValueDataMember = "Travel"; PrepareSeriesAnimation(travelSeries, 2); chart.Diagram.Series.AddRange(new Series[] { politicsSeries, entertainmentSeries, travelSeries }); foreach (Series series in chart.Diagram.Series) { ISupportTransparency supportTransparency = series as ISupportTransparency; if (supportTransparency != null) { supportTransparency.Transparency = 0.5; } series.Label = new SeriesLabel(); if (isAreaFullStackedSeries) { series.Label.TextPattern = "{VP:P0}"; } series.LabelsVisibility = cheLabelsVisible.IsChecked.Value; series.Label.ResolveOverlappingMode = ResolveOverlappingMode.Default; series.ArgumentScaleType = ScaleType.DateTime; series.ArgumentDataMember = "Date"; series.DataSource = dataSource; } }
private void ChildFormCategorizedByAgeGroup_Load(object sender, EventArgs e) { AgeGroup = new ChildFormCategorizedByAgeGroup(); categorizedByAgeModelBindingSource.DataSource = Dao.Sales.GetModelsCategory(DDate); diagram = (XYDiagram3D)CategoryAgeChart.Diagram; }