protected virtual Series CreateBarSeries(StrategyDataItemInfo info) { Series s = new Series(); Chart.Series.Add(s); s.Name = info.Name; s.ArgumentDataMember = GetArgumentDataMember(info); s.ArgumentScaleType = GetArgumentScaleType(info); s.ValueDataMembers.AddRange(info.FieldName); s.ValueScaleType = ScaleType.Numerical; s.ShowInLegend = true; SideBySideBarSeriesView view = new SideBySideBarSeriesView(); s.View = view; view.EqualBarWidth = true; view.Color = info.Color; view.BarWidth = info.GraphWidth == 1 ? view.BarWidth : (int)(info.GraphWidth * DpiProvider.Default.DpiScaleFactor); view.FillStyle.FillMode = FillMode.Solid; view.Border.Visibility = DefaultBoolean.False; view.AggregateFunction = SeriesAggregateFunction.Maximum; object dataSource = GetDataSource(info); IResizeableArray array = dataSource as IResizeableArray; if (array == null || array.Count < BigDataCount) { s.DataSource = dataSource; } else { s.Points.AddRange(CreateSeriesPoints(info)); } return(s); }
private void cmbChooseChart_SelectedIndexChanged(object sender, EventArgs e) { switch (cmbChooseChart.SelectedIndex) { case 0: { var shape = new SideBySideBarSeriesView(); ccTaskStatisticalFigure.Series[0].View = shape; } break; case 1: { var shape = new PieSeriesView(); var label = ccTaskStatisticalFigure.Series[0].Label; var pointOptions = label.PointOptions; pointOptions.PointView = PointView.ArgumentAndValues; pointOptions.ValueNumericOptions.Format = NumericFormat.Percent; ccTaskStatisticalFigure.Series[0].View = shape; } break; case 2: { var shape = new LineSeriesView(); ccTaskStatisticalFigure.Series[0].View = shape; } break; case 3: { var shape = new AreaSeriesView(); shape.Transparency = (byte)135; ccTaskStatisticalFigure.Series[0].View = shape; } break; } }
private void RenderData(int month, int year, bool firstLoad) { chartControl1.Titles[0].Text = "กราฟแสดงยอดขายรายเดือน"; Param.DataSet = new DataSet(); DataTable data = new DataTable(); if ((bool)_JSON.success) { data = new DataTable(); data.Columns.Add("Name", typeof(string)); data.Columns.Add("Pay", typeof(double)); data.Columns.Add("NotPay", typeof(double)); data.PrimaryKey = new DataColumn[] { data.Columns["Name"] }; data.TableName = "Data-headSale"; Hashtable hash = new Hashtable(); var idx = 0; var cnt = _JSON.result.Count; for (int i = 0; i < cnt; i++) { if (!data.Rows.Contains(_JSON.result[i].headSale.ToString())) { var val = _JSON.result[i].headSale.ToString(); data.Rows.Add(val, 0, 0); hash.Add(val, idx++); } var column = (bool)_JSON.result[i].isPay ? "Pay" : "NotPay"; var current = data.Rows[hash[_JSON.result[i].headSale.ToString()]][column]; data.Rows[hash[_JSON.result[i].headSale.ToString()]][column] = current + (int)_JSON.result[i].totalPrice; } SideBySideBarSeriesView sideBySideBarSeriesView = new SideBySideBarSeriesView(); sideBySideBarSeriesView.BarWidth = 10D; _SERIES = new Series[idx]; for (int i = 0; i < idx; i++) { _SERIES[i] = new Series(); _SERIES[i].Name = data.Rows[i]["Name"].ToString() == "" ? " " : data.Rows[i]["Name"].ToString(); _SERIES[i].Points.Clear(); SeriesPoint seriesPoint = new SeriesPoint(_SERIES[i].Name, (double)data.Rows[i]["Pay"]); _SERIES[i].Points.Add(seriesPoint); _SERIES[i].View = sideBySideBarSeriesView; //_SERIES[i].CrosshairLabelPattern = "{V:#,#}"; } chartControl1.SeriesSerializable = _SERIES; chartControl1.Visible = true; } else { chartControl1.Visible = false; } if (splashScreenManager.IsSplashFormVisible) { splashScreenManager.CloseWaitForm(); } }
private void RenderData(int month, int year, bool firstLoad) { chartControl1.Titles[0].Text = "กราฟแสดงยอดขายรายเดือน"; Param.DataSet = new DataSet(); DataTable data = new DataTable(); if ((bool)_JSON.success) { data = new DataTable(); data.Columns.Add("Name", typeof(string)); data.Columns.Add("Pay", typeof(double)); data.Columns.Add("NotPay", typeof(double)); data.PrimaryKey = new DataColumn[] { data.Columns["Name"] }; data.TableName = "Data-headSale"; Hashtable hash = new Hashtable(); var idx = 0; var cnt = _JSON.result.Count; for (int i = 0; i < cnt; i++) { if (!data.Rows.Contains(_JSON.result[i].headSale.ToString())) { var val = _JSON.result[i].headSale.ToString(); data.Rows.Add(val, 0, 0); hash.Add(val, idx++); } var column = (bool)_JSON.result[i].isPay ? "Pay" : "NotPay"; var current = data.Rows[hash[_JSON.result[i].headSale.ToString()]][column]; data.Rows[hash[_JSON.result[i].headSale.ToString()]][column] = current+(int)_JSON.result[i].totalPrice; } SideBySideBarSeriesView sideBySideBarSeriesView = new SideBySideBarSeriesView(); sideBySideBarSeriesView.BarWidth = 10D; _SERIES = new Series[idx]; for (int i = 0; i < idx; i++) { _SERIES[i] = new Series(); _SERIES[i].Name = data.Rows[i]["Name"].ToString() == "" ? " " : data.Rows[i]["Name"].ToString(); _SERIES[i].Points.Clear(); SeriesPoint seriesPoint = new SeriesPoint(_SERIES[i].Name, (double)data.Rows[i]["Pay"]); _SERIES[i].Points.Add(seriesPoint); _SERIES[i].View = sideBySideBarSeriesView; //_SERIES[i].CrosshairLabelPattern = "{V:#,#}"; } chartControl1.SeriesSerializable = _SERIES; chartControl1.Visible = true; } else { chartControl1.Visible = false; } if (splashScreenManager.IsSplashFormVisible) splashScreenManager.CloseWaitForm(); }
//----------------------------------------------------------------------------- private void BuildView() { SideBySideBarSeriesView bar = xrChart1.Series[0].View as SideBySideBarSeriesView; bar.AxisX.Title.Text = "Height Differences"; bar.AxisX.Label.Angle = -90; bar.AxisX.Title.Visible = true; bar.AxisY.Title.Text = "Points"; bar.AxisY.Title.Visible = true; }
private void WebChartControl_BoundDataChanged(object sender, EventArgs e) { Series series = webChartControl.Series.Where(s => s.Name == "2015").FirstOrDefault() as Series; if (series != null) { SideBySideBarSeriesView view = series.View as SideBySideBarSeriesView; if (view != null) { view.Color = System.Drawing.Color.Orange; view.FillStyle.FillMode = FillMode.Solid; } } }
static void InitSeries(WebChartControl chart) { using (NWindEntities dbContext = new NWindEntities()) { SideBySideBarSeriesView view = new SideBySideBarSeriesView(); view.FillStyle.FillMode = FillMode.Solid; Series series = new Series() { Name = "Product Price", View = view }; series.ArgumentDataMember = "ProductName"; series.ValueDataMembers.AddRange(new string[] { "UnitPrice" }); chart.Series.Add(series); } }
protected virtual Series CreateBarSeries(StrategyDataItemInfo info) { Series s = new Series(); s.Name = info.FieldName; s.ArgumentDataMember = "Time"; s.ValueDataMembers.AddRange(info.FieldName); s.ValueScaleType = ScaleType.Numerical; s.ShowInLegend = true; SideBySideBarSeriesView view = new SideBySideBarSeriesView(); view.Color = info.Color; view.BarWidth = info.GraphWidth == 1 ? view.BarWidth : (int)(info.GraphWidth * DpiProvider.Default.DpiScaleFactor); s.View = view; s.DataSource = Strategy.StrategyData; return(s); }
Series CreateBarSeries(List <OrderBookStatisticItem> list, string name, string value, Color color) { Series s = new Series(); s.Name = name; s.ArgumentDataMember = "Time"; s.ValueDataMembers.AddRange(value); s.ValueScaleType = ScaleType.Numerical; s.ShowInLegend = true; SideBySideBarSeriesView view = new SideBySideBarSeriesView(); view.Color = color; view.AxisY = ((XYDiagram)this.chartControl1.Diagram).SecondaryAxesY["Hipes"]; s.View = view; s.DataSource = list; return(s); }
private void ChardDoldur() { int i = 0; XYDiagram diagram = (XYDiagram)chartControlDuruslar.Diagram; using (ARAFEntities context = new ARAFEntities()) { var query = from contact in context.ARF_PRODUCTION_SUSPEND where contact.PROD_ID == ProductionID orderby contact.SUSPEND_TIME select contact; // Iterate through the collection of Contact items. foreach (var result in query) { this.chartControlDuruslar.Titles.Clear(); //Chart da varsayılan olarak gelen başlıkları temizliyoruz. this.chartControlDuruslar.Series.Clear(); //Chart da varsayılan olarak gelen series (Liste) temizliyoruz. // Add two custom labels to the X-axis' collection. diagram.AxisX.CustomLabels.Add(new CustomAxisLabel(result.SUSPEND_NAME.ToString())); diagram.AxisX.CustomLabels[i].AxisValue = result.SUSPEND_NAME.ToString(); diagram.AxisX.Title.Text = ""; diagram.AxisX.Label.TextColor = Color.Red; // diagram.AxisX.Label.Visible = true; diagram.AxisX.Visibility = DevExpress.Utils.DefaultBoolean.True; Series series1 = new Series("DURUŞ ADI", ViewType.Bar); chartControlDuruslar.Series.Add(series1); series1.DataSource = query.ToList(); series1.ArgumentScaleType = ScaleType.Qualitative; series1.ArgumentDataMember = "SUSPEND_NAME"; series1.ValueScaleType = ScaleType.Numerical; SideBySideBarSeriesView view = series1.View as SideBySideBarSeriesView; view.BarWidth = 0.1; series1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; chartControlDuruslar.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True; series1.ValueDataMembers.AddRange(new string[] { "SUSPEND_TIME" }); //((pie)chartControl2.Diagram).AxisY.Visible = false; i++; } } }
public static WebChartControl CreateChart(DataTable dt_descstats, string levels_x, string levels_legend, int width, int height) { WebChartControl WebChart = new WebChartControl(); WebChart.DataSource = dt_descstats; WebChart.SeriesDataMember = levels_legend; SideBySideBarSeriesView view = new SideBySideBarSeriesView(); DataSourceBasedErrorBars errbar = new DataSourceBasedErrorBars("sd"); errbar.Name = "SD"; //errbar.NegativeErrorDataMember = "SDminus"; //errbar.PositiveErrorDataMember = "SDplus"; errbar.NegativeErrorDataMember = "Value_StdDev"; errbar.PositiveErrorDataMember = "Value_StdDev"; errbar.Direction = ErrorBarDirection.Both; errbar.EndStyle = ErrorBarEndStyle.Cap; errbar.Color = Color.Black; errbar.LineStyle.Thickness = 1; view.Indicators.Add(errbar); //FixedValueErrorBars fixbar = new FixedValueErrorBars("fix"); //fixbar.Name = "fix"; //fixbar.NegativeError = 2; //fixbar.PositiveError = 10; //fixbar.Direction = ErrorBarDirection.Both; //fixbar.EndStyle = ErrorBarEndStyle.Cap; //fixbar.Color = Color.Red; //fixbar.LineStyle.Thickness = 3; //view.Indicators.Add(fixbar); WebChart.SeriesTemplate.ArgumentDataMember = levels_x; WebChart.SeriesTemplate.ValueDataMembers.AddRange(new string[] { "Value_Average" }); WebChart.SeriesTemplate.View = view; WebChart.Width = width; WebChart.Height = height; WebChart.DataBind(); WebChart.EnableViewState = true; return(WebChart); }
public void BindIterationChart(List <ProjectSummary> dataSource) { IterationChartBar.Series.Clear(); BarSeriesView effortbarView = new SideBySideBarSeriesView(); Series effortSeries = new Series(); effortSeries.Name = Properties.Resources.colSumEffort; effortSeries.ShowInLegend = true; effortSeries.View = effortbarView; Series inputEffortRateSeries = CreateLineSeries(Properties.Resources.colInputEffortRate, NumericFormat.Percent); foreach (var item in dataSource) { SeriesPoint effortSeriesPoint = new SeriesPoint(item.Name, new object[] { ((object)(item.SumEffort)) }); effortSeries.Points.Add(effortSeriesPoint); SeriesPoint inputEffortRateSeriesPoint = new SeriesPoint(item.Name, new object[] { ((object)(item.SumInputEffortRate)) }); inputEffortRateSeries.Points.Add(inputEffortRateSeriesPoint); } IterationChartBar.Series.Add(effortSeries); IterationChartBar.Series.Add(inputEffortRateSeries); XYDiagram diagram = IterationChartBar.Diagram as XYDiagram; if (diagram == null) { return; } diagram.AxisY.Title.Visible = true; diagram.AxisY.Title.Text = Properties.Resources.WorkUnit; if (diagram.SecondaryAxesY.Count <= 0) { SecondaryAxisY secondAxisY = new SecondaryAxisY(); diagram.SecondaryAxesY.Add(secondAxisY); } LineSeriesView inputEffortRateView = inputEffortRateSeries.View as LineSeriesView; if (inputEffortRateView != null) { inputEffortRateView.AxisY = diagram.SecondaryAxesY[0]; } }
public static WebChartControl CreateHist(DataTable dt_hist, string histlevels, int width, int height) { WebChartControl WebChart = new WebChartControl(); WebChart.DataSource = dt_hist; WebChart.SeriesDataMember = "timept"; SideBySideBarSeriesView view = new SideBySideBarSeriesView(); WebChart.SeriesTemplate.ValueDataMembers.AddRange(new string[] { "Value_Average" }); WebChart.SeriesTemplate.View = view; WebChart.Width = width; WebChart.Height = height; WebChart.DataBind(); WebChart.EnableViewState = true; return(WebChart); }
protected virtual Series CreateBarSeries(StrategyDataItemInfo info) { Series s = new Series(); s.Name = info.Name; s.ArgumentDataMember = GetArgumentDataMember(info); s.ArgumentScaleType = GetArgumentScaleType(info); s.ValueDataMembers.AddRange(info.FieldName); s.ValueScaleType = ScaleType.Numerical; s.ShowInLegend = true; SideBySideBarSeriesView view = new SideBySideBarSeriesView(); view.Color = info.Color; view.BarWidth = info.GraphWidth == 1 ? view.BarWidth : (int)(info.GraphWidth * DpiProvider.Default.DpiScaleFactor); //view.EqualBarWidth = true; view.FillStyle.FillMode = FillMode.Solid; view.Border.Visibility = DefaultBoolean.False; s.View = view; s.DataSource = GetDataSource(info); return(s); }
private void frmChartManageDao_Load(object sender, EventArgs e) { // gắn title Dao ChartTitle chartTitle = new ChartTitle(); chartTitle.Text = "QUAN LY DAO HOB (TOTAL)"; chartDao.Titles.Add(chartTitle); //khởi tạo series Dao _series1 = new Series("QtyProduct", ViewType.Bar); _series1.ArgumentDataMember = "ProductCode"; _series1.ValueDataMembers[0] = "QtyProduct"; _series1.ArgumentScaleType = ScaleType.Qualitative; _series2 = new Series("QtyProductMax", ViewType.Line); _series2.ArgumentDataMember = "ProductCode"; _series2.ValueDataMembers[0] = "QtyProductMax"; _series2.ArgumentScaleType = ScaleType.Qualitative; _series3 = new Series("QtyMai", ViewType.Line); _series3.ArgumentDataMember = "ProductCode"; _series3.ValueDataMembers[0] = "QtyMai"; _series3.ArgumentScaleType = ScaleType.Qualitative; _series1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; _series2.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; _series3.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; chartDao.Series.AddRange(new Series[] { _series1, _series2, _series3 }); //Khởi tạo series Dao Detail Series seriesDetail1 = new Series("QtyProduct", ViewType.Bar); seriesDetail1.ArgumentDataMember = "CreatedAt"; seriesDetail1.ValueDataMembers[0] = "QtyProduct"; seriesDetail1.ArgumentScaleType = ScaleType.Qualitative; Series seriesDetail2 = new Series("QtyProductMax", ViewType.Line); seriesDetail2.ArgumentDataMember = "CreatedAt"; seriesDetail2.ValueDataMembers[0] = "QtyProductMax"; seriesDetail2.ArgumentScaleType = ScaleType.Qualitative; Series seriesDetail3 = new Series("TotalProduct", ViewType.Line); seriesDetail3.ArgumentDataMember = "CreatedAt"; seriesDetail3.ValueDataMembers[0] = "TotalProduct"; seriesDetail3.ArgumentScaleType = ScaleType.Qualitative; chartDaoDetail.Series.AddRange(new Series[] { seriesDetail1, seriesDetail2, seriesDetail3 }); seriesDetail1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; seriesDetail2.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; seriesDetail3.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; // format Axis XYDiagram diagram = chartDaoDetail.Diagram as XYDiagram; //diagram.AxisX.DateTimeScaleOptions.; //diagram.AxisX.DateTimeScaleOptions.GridAlignment = DateTimeGridAlignment.Millisecond; diagram.AxisY.Title.Alignment = StringAlignment.Center; diagram.AxisY.Title.Text = "Cột 1"; diagram.AxisY.Title.Visible = true; diagram.AxisY.Title.TextColor = Color.Red; diagram.AxisY.Label.TextColor = Color.Red; XYDiagram diaDao = chartDao.Diagram as XYDiagram; diaDao.AxisY.Title.Alignment = StringAlignment.Center; diaDao.AxisY.Title.Text = "Cột 1"; diaDao.AxisY.Title.Visible = true; diaDao.AxisY.Title.TextColor = Color.Red; diaDao.AxisY.Label.TextColor = Color.Red; SecondaryAxisY myAxisY = new SecondaryAxisY("my Y-Axis"); ((XYDiagram)chartDao.Diagram).SecondaryAxesY.Add(myAxisY); ((XYDiagram)chartDaoDetail.Diagram).SecondaryAxesY.Add(myAxisY); ((LineSeriesView)_series3.View).AxisY = myAxisY; ((LineSeriesView)seriesDetail3.View).AxisY = myAxisY; myAxisY.Title.Alignment = StringAlignment.Center; myAxisY.Title.Text = "Cột 2"; myAxisY.Title.Visible = true; myAxisY.Title.TextColor = Color.Green; myAxisY.Label.TextColor = Color.Green; myAxisY.Color = Color.Green; // Series Label SeriesPoint s = new SeriesPoint(); PointSeriesLabel barSeries = _series1.Label as PointSeriesLabel; SideBySideBarSeriesLabel l = chartDao.Series[0].Label as SideBySideBarSeriesLabel; SideBySideBarSeriesView v = chartDao.Series[0].View as SideBySideBarSeriesView; BarSeriesLabel seriesLabel = chartDao.Series[0].Label as BarSeriesLabel; PointSeriesLabel p = _series1.Label as PointSeriesLabel; //seriesLabel.BackColor seriesLabel.Position = BarSeriesLabelPosition.TopInside; seriesLabel.TextOrientation = TextOrientation.Horizontal; v.EqualBarWidth = true; //seriesLabel.MaxWidth = (int)barSeries.BarWidth; _lstDao = ManageDaoHOBBO.Instance.FindAll(); if (_lstDao.Count > 0) { chartDao.DataSource = _lstDao; //start thread _threadLoadDaoDetail = new Thread(new ThreadStart(loadDaoDetails)); _threadLoadDaoDetail.IsBackground = true; _threadLoadDaoDetail.Start(); } }
public void CreateLineplot(DataTable mydt) { _coloroverride = -1; string seriesby = _settings.seriesby; string colorsby = _settings.colorvar; Color myseriescolor; DataTable dataxy_all = DataTableExtensions.Data_SelectColumnXY(mydt, _settings.xaxisvar, _settings.yaxisvar, seriesby, colorsby); List <string> series_levels = dataxy_all.AsEnumerable().Select(x => x.Field <string>("seriesby")).Distinct().ToList(); List <string> colors_levels = dataxy_all.AsEnumerable().Select(x => x.Field <string>("colorsby")).Distinct().ToList(); colors_levels.Sort(); _colorLevels = colors_levels; //use this to create a manual legend later if needed List <string> seriesIDs = new List <string>(); if (seriesby == "id") { seriesIDs = dataxy_all.AsEnumerable().Select(x => x.Field <string>("id")).Distinct().ToList(); } else { seriesIDs = dataxy_all.AsEnumerable().Select(x => x.Field <string>("seriesby")).Distinct().ToList(); } int _nall = dataxy_all.Rows.Count; if (_nall > 0) { List <Series> list_o_series = new List <Series>(); //foreach (string s in seriesIDs) for (int s = 0; s < seriesIDs.Count; s++) { for (int s_color = 0; s_color < colors_levels.Count; s_color++) { dataxy_all.DefaultView.Sort = "seriesby ASC, colorsby ASC, x ASC"; dataxy_all.DefaultView.ApplyDefaultSort = true; DataView vw = dataxy_all.AsDataView(); string rowfilter = (seriesby == "id") ? String.Format("{0}='{1}' and colorsby='{2}'", seriesby, seriesIDs[s], colors_levels[s_color]) : String.Format("{0}='{1}' and colorsby='{2}'", "seriesby", seriesIDs[s], colors_levels[s_color]); //string rowfilter = (seriesby == "id") ? // String.Format("{0}='{1}'", seriesby, seriesIDs[s]) : // String.Format("{0}='{1}'", "seriesby", seriesIDs[s]); vw.RowFilter = rowfilter; //vw.Sort = String.Format("{0} {1}", "x", "ASC"); //sort by the x variable //vw.ApplyDefaultSort = true; DataTable dataxy = vw.ToTable(); dataxy.DefaultView.Sort = "x ASC"; dataxy.DefaultView.ApplyDefaultSort = true; n = dataxy.Rows.Count; if (n > 0) { string current_colorlevel = dataxy.AsEnumerable().Select(f => f.Field <string>("colorsby")).Min().ToString(); List <string> series_colors = dataxy.AsEnumerable().Select(f => f.Field <string>("colorsby")).ToList(); //Switch to alternate geom if needed if (_settings.vars_for_altgeom.Contains(current_colorlevel)) { _settings.activegeom = _settings.altgeom; } else { _settings.activegeom = _settings.geom; } int colorindex = 0; //Get the correct color if (colorsby != "none") { for (int c = 0; c < colors_levels.Count; c++) { if (current_colorlevel == colors_levels[c]) { colorindex = c; } } } myseriescolor = _settings.color(colorindex % 15); if (_coloroverride >= 0) { myseriescolor = _settings.color(_coloroverride % 15); } SeriesPoint[] seriesPoints = CreateSeriesPoints(dataxy, colorsby, colors_levels, series_colors, colorindex, myseriescolor); //TOFIX SeriesPoint[] seriesPoints = new DxSeriesPoints(dataxy, "x", "y", colorsby, colors_levels, series_colors, colorindex, myseriescolor); Series series = new Series(); SideBySideBarSeriesView barSeriesView = new SideBySideBarSeriesView(); LineSeriesView lineSeriesView = new LineSeriesView(); PointSeriesView pointSeriesView = new PointSeriesView(); if (_settings.activegeom == LineplotGeom.Bar) { //barSeriesView = new SideBySideBarSeriesView() ; } else if (_settings.activegeom == LineplotGeom.Line) { //lineSeriesView = new LineSeriesView(); lineSeriesView.LineMarkerOptions.FillStyle.FillMode = FillMode.Solid; lineSeriesView.LineMarkerOptions.Kind = _markers[s % _markers.Count]; } else { pointSeriesView.PointMarkerOptions.FillStyle.FillMode = FillMode.Solid; MarkerKind mymarker = new MarkerKind(); if (_settings.activegeom == LineplotGeom.Circle) { mymarker = MarkerKind.Circle; } if (_settings.activegeom == LineplotGeom.Square) { mymarker = MarkerKind.Square; } if (_settings.activegeom == LineplotGeom.Cross) { mymarker = MarkerKind.Cross; } if (_settings.activegeom == LineplotGeom.Star) { mymarker = MarkerKind.Star; } pointSeriesView.PointMarkerOptions.Kind = mymarker; pointSeriesView.PointMarkerOptions.Size = _settings.markersize; if (_settings.activegeom == LineplotGeom.Star) { pointSeriesView.PointMarkerOptions.StarPointCount = 6; } } if (_settings.xaxis_is_date) { this.xydiagram.AxisX.DateTimeScaleOptions.ScaleMode = ScaleMode.Continuous; this.xydiagram.AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month; this.xydiagram.AxisX.Label.TextPattern = "{A:dd-MMM-yy}"; series.ToolTipPointPattern = "x={A:dd-MMM-yy} y={V:F2} {HINT}"; } else { series.ToolTipPointPattern = "x={A:F2} y={V:F2} {HINT}"; } ToolTipRelativePosition pos = new ToolTipRelativePosition(); pos.OffsetX = -10; pos.OffsetY = -10; chart.ToolTipOptions.ToolTipPosition = pos; if (_settings.activegeom == LineplotGeom.Bar) { series.View = barSeriesView; } else if (_settings.activegeom == LineplotGeom.Line) { series.View = lineSeriesView; } else { series.View = pointSeriesView; } series.Points.AddRange(seriesPoints); list_o_series.Add(series); } } } //Add the series to the chart int max_pts = list_o_series.Select(s => s.Points.Count).Max(); foreach (Series s in list_o_series) { //first add those with the max number of points if (s.Points.Count == max_pts) { chart.Series.Add(s); } } foreach (Series s in list_o_series) { //then add those with fewer points if (s.Points.Count != max_pts) { chart.Series.Add(s); } } // consider adding N=??, intrcpt=, slope= string mytitle = ""; string mainTitleText = String.Format("{0}", mytitle); //, seriesPoints.Count()); chart.Width = _settings.W; chart.Height = _settings.H; this.AddTitles(mainTitleText, "", _settings.xaxisvar, _settings.yaxisvar); chart.BorderOptions.Color = Color.White; chart.CustomDrawSeriesPoint += Lineplot_TransparentPoint; chart.CustomDrawSeries += Lineplot_TransparentLine; //chart.CustomCallback += _dxcharts.Mychart_CustomCallback; chart.ToolTipEnabled = DevExpress.Utils.DefaultBoolean.True; chart.ToolTipOptions.ShowForSeries = true; chart.CrosshairEnabled = DevExpress.Utils.DefaultBoolean.False; if (colorsby != "none") { for (int lev = 0; lev < colors_levels.Count; lev++) { // Create a new custom item. CustomLegendItem item = new CustomLegendItem(); chart.Legend.CustomItems.Add(item); // Specify its text and marker. item.Text = colors_levels[lev]; int coloridx = (_coloroverride >= 0) ? _coloroverride : lev; item.MarkerColor = _settings.colors[coloridx % _settings.colors.Count]; //item. } } chart.Legend.Visibility = (_settings.showLegend) ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False; LegendAlignmentHorizontal legend_h = new LegendAlignmentHorizontal(); LegendAlignmentVertical legend_v = new LegendAlignmentVertical(); if (_settings.legend_pos_h == "Right") { legend_h = LegendAlignmentHorizontal.Right; } else if (_settings.legend_pos_h == "RightOutside") { legend_h = LegendAlignmentHorizontal.RightOutside; } else if (_settings.legend_pos_h == "Left") { legend_h = LegendAlignmentHorizontal.Left; } else if (_settings.legend_pos_h == "LeftOutside") { legend_h = LegendAlignmentHorizontal.LeftOutside; } else if (_settings.legend_pos_h == "Center") { legend_h = LegendAlignmentHorizontal.Center; } if (_settings.legend_pos_v == "Top") { legend_v = LegendAlignmentVertical.Top; } else if (_settings.legend_pos_v == "TopOutside") { legend_v = LegendAlignmentVertical.TopOutside; } else if (_settings.legend_pos_v == "Bottom") { legend_v = LegendAlignmentVertical.Bottom; } else if (_settings.legend_pos_v == "BottomOutside") { legend_v = LegendAlignmentVertical.BottomOutside; } else if (_settings.legend_pos_v == "Center") { legend_v = LegendAlignmentVertical.Center; } chart.Legend.AlignmentHorizontal = legend_h; chart.Legend.AlignmentVertical = legend_v; // Set a value indicating that both autogenerated and custom items are displayed. chart.Legend.ItemVisibilityMode = LegendItemVisibilityMode.AutoGeneratedAndCustom; } else { //_emptymsg = String.Format("0 cases for{3}{0}{3}{1} by {2}", mytitle, xvar, yvar, Environment.NewLine); //return null; } }
public void CreateBarchart(DescStats statstable) //, string xaxisvar, string colorsvar, string maintitle ) { chart.AxisWholeRangeChanged += LogAxesRangeWhole; //chart.AxisVisualRangeChanged += LogAxesRangeVisual; string mycolorvar; if (_settings.colorvar == "none") { mycolorvar = (statstable.dt.ColumnNames().Contains("All")) ? "All" : _settings.xaxisvar; } else { mycolorvar = _settings.colorvar; } List <string> colors_levels = statstable.dt.AsEnumerable().Select(x => x.Field <string>(mycolorvar)).Distinct().ToList(); List <string> xaxis_levels = statstable.dt.AsEnumerable().Select(x => x.Field <string>(_settings.xaxisvar)).Distinct().ToList(); List <string> panes_levels = new List <string>(); if (_settings.panelvar != "none") { panes_levels = statstable.dt.AsEnumerable().Select(x => x.Field <string>(_settings.panelvar)).Distinct().ToList(); panes_levels.Sort(); } //for (int i = 0; i < colors_levels.Count; i++) //{ // string current_color_lev = colors_levels[i]; //} foreach (Series ser in chart.Series) { Debug.WriteLine(String.Format("arg data member:[{0}] color data member:[{1}]", ser.ArgumentDataMember, ser.ColorDataMember)); } BarchartSeries barseries = new BarchartSeries(statstable.dt, _settings.xaxisvar, _settings.colorvar, _settings.panelvar, _settings.colors, colors_levels); foreach (DxSeriesPoints sp in barseries.list_dxseriespoints) { Series s = new Series(); s.Points.AddRange(sp.seriesPoints); SideBySideBarSeriesView vw = new SideBySideBarSeriesView(); s.View = vw; var thesd = sp.seriesPointsSD[0].Values[0]; vw.Indicators.Add(new FixedValueErrorBars { Direction = ErrorBarDirection.Both, Name = "SD", Color = Color.Black, PositiveError = thesd, NegativeError = thesd }); chart.Series.Add(s); } Debug.WriteLine(String.Format("***************************** INIT # of Panes: {0}", xydiagram.Panes.Count)); //Additional Panes if (panes_levels.Count > 0) { xydiagram.Panes.Clear(); Debug.WriteLine(String.Format("***************************** After CLEAR # of Panes: {0}", xydiagram.Panes.Count)); foreach (string p in panes_levels) { // Obtain a diagram and clear its collection of panes. XYDiagramPane pane = new XYDiagramPane(p); xydiagram.Panes.Add(pane); pane.Title.Text = p; pane.Title.Visibility = DefaultBoolean.True; xydiagram.PaneLayout.Direction = _settings.panesLayoutDirection; // PaneLayoutDirection.Horizontal; Debug.WriteLine(String.Format("********************************** # of Panes: {0} {1}", xydiagram.Panes.Count, p)); // check whether series should be added to this pane. for (int i = 0; i < chart.Series.Count; i++) { // if (sps[i].panename == p) if (barseries.list_dxseriespoints[i].panename == p) { XYDiagramSeriesViewBase view = (XYDiagramSeriesViewBase)chart.Series[i].View; view.Pane = xydiagram.Panes[p]; } } xydiagram.DefaultPane.Visibility = ChartElementVisibility.Hidden; } } //No Additional Panes else { for (int i = 0; i < chart.Series.Count; i++) { XYDiagramSeriesViewBase view = (XYDiagramSeriesViewBase)chart.Series[i].View; view.Pane = xydiagram.DefaultPane; } } chart.DataBind(); //Adjust axis range if needed if (_settings.miny != -999 && _settings.maxy != -999) { double y1 = _settings.miny; double y2 = _settings.maxy; //diag.AxisY.VisualRange.SetMinMaxValues(y1, y2); xydiagram.AxisY.WholeRange.SetMinMaxValues(y1, y2); xydiagram.AxisY.VisualRange.SetMinMaxValues(y1, y2); } chart.Width = _settings.W; chart.Height = _settings.H; #region Titles if (_settings.numvars.Count == 1) { AddTitles(_settings.title, _settings.subtitle, "", String.Format("{0} Mean (SD)", _settings.numvars[0])); } else { AddTitles(_settings.title, _settings.subtitle, "", "Mean (SD)"); } #endregion chart.BorderOptions.Color = Color.White; this.LegendByColorLevels(_settings.colors, colors_levels); chart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True; }
private void BindChart() { string dimensionName = string.Empty; if (dimsionValue > 0) { dimensionName = ((Dimension)dimsionValue).ToString(); } xrChart1.Series.Clear(); if (dimsionValue <= 0 && chartType == 0) { Series pieSeries = new Series(); pieSeries.ValueScaleType = ScaleType.Numerical; pieSeries.LegendPointOptions.PointView = PointView.Argument; pieSeries.LegendPointOptions.ValueNumericOptions.Format = NumericFormat.Percent; PieSeriesView pieView = new PieSeriesView(); pieView.ExplodedDistancePercentage = 10; SeriesTitle title = new SeriesTitle(); title.Text = GetLocalizedCaption(targetName) + "-" + GetLocalizedCaption("Rate"); pieView.Titles.Add(title); pieView.RuntimeExploding = true; pieSeries.View = pieView; List <SaleOverview> dataList = (List <SaleOverview>) this.DataSource; var resultData = dataList.AsQueryable().GroupBy("UnitName", "it") .Select("new (Key as UnitName,Sum(" + targetName + ") as " + targetName + ")", null); foreach (var item in resultData) { Type itemType = item.GetType(); SeriesPoint seriesPoint = new SeriesPoint(itemType.GetProperty("UnitName").GetValue(item, null) , new object[] { ((object)itemType.GetProperty(targetName).GetValue(item, null)) }); pieSeries.Points.Add(seriesPoint); } xrChart1.Series.Add(pieSeries); PieSeriesLabel pieSerieslable = pieSeries.Label as PieSeriesLabel; if (pieSerieslable != null) { pieSerieslable.PointOptions.PointView = PointView.ArgumentAndValues; pieSerieslable.Position = PieSeriesLabelPosition.TwoColumns; pieSerieslable.TextAlignment = StringAlignment.Center; } PiePointOptions options = pieSeries.Label.PointOptions as PiePointOptions; if (options != null) { options.PercentOptions.PercentageAccuracy = 2; options.PercentOptions.ValueAsPercent = true; options.ValueNumericOptions.Format = NumericFormat.Percent; } } else { List <SaleOverview> dataList = (List <SaleOverview>) this.DataSource; List <string> demisionList = new List <string>(); if (!string.IsNullOrEmpty(dimensionName)) { foreach (var item in dataList) { Type itemType = item.GetType(); string demisionName = itemType.GetProperty(dimensionName).GetValue(item, null).ToString(); if (!demisionList.Contains(demisionName)) { demisionList.Add(demisionName); } } } else { demisionList.Add(string.Empty); } for (int d = 0; d < demisionList.Count; d++) { IQueryable resultData = null; if (!string.IsNullOrEmpty(dimensionName)) { resultData = dataList.AsQueryable().Where(dimensionName + "=@0", demisionList[d]).GroupBy("UnitName", "it") .Select("new (Key as UnitName,Sum(" + targetName + ") as " + targetName + ")", null); } else { resultData = dataList.AsQueryable().GroupBy("UnitName", "it") .Select("new (Key as UnitName,Sum(" + targetName + ") as " + targetName + ")", null); } Series lineSeries = new Series(); lineSeries.Name = demisionList[d]; lineSeries.ShowInLegend = true; if (chartType == 1) { LineSeriesView lineView = new LineSeriesView(); lineSeries.View = lineView; } else if (chartType == 2) { BarSeriesView barView = new SideBySideBarSeriesView(); lineSeries.View = barView; } foreach (var item in resultData) { Type itemType = item.GetType(); SeriesPoint effortSeriesPoint = new SeriesPoint(itemType.GetProperty("UnitName").GetValue(item, null) , new object[] { ((object)(itemType.GetProperty(targetName).GetValue(item, null))) }); lineSeries.Points.Add(effortSeriesPoint); } xrChart1.Series.Add(lineSeries); } XYDiagram diagram = xrChart1.Diagram as XYDiagram; if (diagram == null) { return; } diagram.AxisY.Title.Visible = true; if (!string.IsNullOrEmpty(dimensionName)) { diagram.AxisY.Title.Text = GetLocalizedCaption(dimensionName) + "-" + GetLocalizedCaption(targetName); } else { diagram.AxisY.Title.Text = string.Empty; } } }