Hello , this blog post about Charting in DevExpress , I faced many problems I visited hundreds of pages to solve this problems , actually it was the first time I use DevExpress Charts, Work is not like school or university , in school if you don't know thing you can learn it any time you want , in work you have to do today task yesterday, I like to share my knowledge and skills with you , I hope this Post help you .
// clear series on chart
chart.Series.Clear();
// clear Titles of chart
chart.Titles.Clear();
// legend alignment
chart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;
chart.Legend.AlignmentVertical = LegendAlignmentVertical.Bottom;
chart.Legend.Direction = LegendDirection.LeftToRight;
// creating series
// series view Type example Line
DevExpress.XtraCharts.Series series = new DevExpress.XtraCharts.Series("series name ", ViewType.Line);
// add title
DevExpress.XtraCharts.ChartTitle chtTitle = new DevExpress.XtraCharts.ChartTitle();
chtTitle.Text = "Chart Ttile";
chart.Titles.Add(chtTitle);
// crosshair Option
// set it either true or false
chart.CrosshairOptions.ShowGroupHeaders = false;
// to formate crosshair option // F4 mean 4 Decimal Places
chart.Series[indx].CrosshairEnabled = DefaultBoolean.True;
hart.Series[indx].CrosshairLabelPattern = " {S} \n x-AxisLabel :{A:F4}\n Y-AxisLabel: {V:F4}";
// Axis
// First you need to cast your chart diagram to XYDiagram
XYDiagram diagram = (XYDiagram)chart.Diagram;
// setting Axis
// Customize the appearance of the X-axis title.
diagram.AxisX.Title.Visible = true;
diagram.AxisX.Title.Alignment = StringAlignment.Center;
diagram.AxisX.Title.Text = "Axis-X";
diagram.AxisX.Title.TextColor = Color.Red;
diagram.AxisX.Title.Antialiasing = true;
diagram.AxisX.Title.Font = new System.Drawing.Font("Tahoma", 14, FontStyle.Bold);
// Customize the appearance of the Y-axis title.
diagram.AxisY.Title.Visible = true;
diagram.AxisY.Title.Alignment = StringAlignment.Center;
diagram.AxisY.Title.Text = "Axis-y";
diagram.AxisY.Title.TextColor = Color.Blue;
diagram.AxisY.Title.Antialiasing = true;
diagram.AxisY.Title.Font = new System.Drawing.Font("Tahoma", 14, FontStyle.Bold);
// scaling Axis
// lograthmic scale
diagram.AxisX.Logarithmic = true;
diagram.AxisX.LogarithmicBase = 10;
diagram.AxisY.Logarithmic = true;
diagram.AxisY.LogarithmicBase = 10;
// zooming
diagram.EnableAxisXZooming = true;
// Individually enable zooming for panes.
diagram.DefaultPane.EnableAxisXZooming = DefaultBoolean.True;
//diagram.Panes[0].EnableAxisXZooming = DefaultBoolean.False;
// Specify how zooming is performed.
diagram.ZoomingOptions.UseKeyboard = false;
diagram.ZoomingOptions.UseKeyboardWithMouse = true;
diagram.ZoomingOptions.UseMouseWheel = true;
// setting Ranges of Axis
diagram.AxisX.Range.MinValue = 0.001;
diagram.AxisX.Range.MaxValue = 1000;
diagram.AxisY.Range.MinValue = 0.1;
diagram.AxisY.Range.MaxValue = 10000;
// Change how Series is displayed
LineSeriesView view = (LineSeriesView)chart.Series[indx].View;
view.Color = Color.Red;
// secondary Axis
SecondaryAxisY myAxisY;
myAxisY = new SecondaryAxisY("Axis Name");
// assign series to secondry Axis
((LineSeriesView)series.View).AxisY = myAxisY;
I finished this tutorial if you have any suggestions contact me @ :
mail : AhmedGhazey@gmail.com
twitter : AhmedGhazey
facebook: www.facebook.com/AhGhazey
thank you for reading , I hope you like the post .
Ahmed Ghazey
// clear series on chart
chart.Series.Clear();
// clear Titles of chart
chart.Titles.Clear();
// legend alignment
chart.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;
chart.Legend.AlignmentVertical = LegendAlignmentVertical.Bottom;
chart.Legend.Direction = LegendDirection.LeftToRight;
// creating series
// series view Type example Line
DevExpress.XtraCharts.Series series = new DevExpress.XtraCharts.Series("series name ", ViewType.Line);
// add title
DevExpress.XtraCharts.ChartTitle chtTitle = new DevExpress.XtraCharts.ChartTitle();
chtTitle.Text = "Chart Ttile";
chart.Titles.Add(chtTitle);
// crosshair Option
// set it either true or false
chart.CrosshairOptions.ShowGroupHeaders = false;
// to formate crosshair option // F4 mean 4 Decimal Places
chart.Series[indx].CrosshairEnabled = DefaultBoolean.True;
hart.Series[indx].CrosshairLabelPattern = " {S} \n x-AxisLabel :{A:F4}\n Y-AxisLabel: {V:F4}";
// Axis
// First you need to cast your chart diagram to XYDiagram
XYDiagram diagram = (XYDiagram)chart.Diagram;
// setting Axis
// Customize the appearance of the X-axis title.
diagram.AxisX.Title.Visible = true;
diagram.AxisX.Title.Alignment = StringAlignment.Center;
diagram.AxisX.Title.Text = "Axis-X";
diagram.AxisX.Title.TextColor = Color.Red;
diagram.AxisX.Title.Antialiasing = true;
diagram.AxisX.Title.Font = new System.Drawing.Font("Tahoma", 14, FontStyle.Bold);
// Customize the appearance of the Y-axis title.
diagram.AxisY.Title.Visible = true;
diagram.AxisY.Title.Alignment = StringAlignment.Center;
diagram.AxisY.Title.Text = "Axis-y";
diagram.AxisY.Title.TextColor = Color.Blue;
diagram.AxisY.Title.Antialiasing = true;
diagram.AxisY.Title.Font = new System.Drawing.Font("Tahoma", 14, FontStyle.Bold);
// scaling Axis
// lograthmic scale
diagram.AxisX.Logarithmic = true;
diagram.AxisX.LogarithmicBase = 10;
diagram.AxisY.Logarithmic = true;
diagram.AxisY.LogarithmicBase = 10;
// zooming
diagram.EnableAxisXZooming = true;
// Individually enable zooming for panes.
diagram.DefaultPane.EnableAxisXZooming = DefaultBoolean.True;
//diagram.Panes[0].EnableAxisXZooming = DefaultBoolean.False;
// Specify how zooming is performed.
diagram.ZoomingOptions.UseKeyboard = false;
diagram.ZoomingOptions.UseKeyboardWithMouse = true;
diagram.ZoomingOptions.UseMouseWheel = true;
// setting Ranges of Axis
diagram.AxisX.Range.MinValue = 0.001;
diagram.AxisX.Range.MaxValue = 1000;
diagram.AxisY.Range.MinValue = 0.1;
diagram.AxisY.Range.MaxValue = 10000;
// Change how Series is displayed
LineSeriesView view = (LineSeriesView)chart.Series[indx].View;
view.Color = Color.Red;
// secondary Axis
SecondaryAxisY myAxisY;
myAxisY = new SecondaryAxisY("Axis Name");
// assign series to secondry Axis
((LineSeriesView)series.View).AxisY = myAxisY;
I finished this tutorial if you have any suggestions contact me @ :
mail : AhmedGhazey@gmail.com
twitter : AhmedGhazey
facebook: www.facebook.com/AhGhazey
thank you for reading , I hope you like the post .
Ahmed Ghazey
the code did not mention what is indx and theres an error where my code does not recognize the diagram after casting the chartcontorl
ReplyDeleteindx is integer to define series index
DeleteGood post! The DevExpress controls are powerful but overly complex and poorly documented. This is a very nice guide. The diagram.AxisX.Range.MinValue has now been deprecated with version 14 and replaced by WholeRange which is quite unintuitive: diagram.AxisX.WholeRange.SetMinMaxValues(min, max);
ReplyDeleteAlso, it will blow up if you try calling it before there's any data in your bound datatable. This is extremely poor error handling (non-existent really) on DevExpress' part. You need to watch out for it.