Skip to main content

DevExpress C# Chart Tutorial

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



Comments

  1. the code did not mention what is indx and theres an error where my code does not recognize the diagram after casting the chartcontorl

    ReplyDelete
    Replies
    1. indx is integer to define series index

      Delete
  2. Good 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);

    Also, 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.

    ReplyDelete

Post a Comment

Popular posts from this blog

Designing Entity Relationship Diagram (ERD)

Al Salmo Aliko . Hello, in this post I'll discuss with you how to design good Entity Relationship Diagram ERD . this article for: IT Students learning about database. you are having difficulties in creating ERD. you are developer that need help in database design.   let's ask ourselves Why good database design is good ? or why we need ERD?         when I started programming Eng / Eman Ahmed was my First teacher, she said you must write your code with pen, and now I told you good database design start with paper and pen or in technological terms start with ERD, ERD is the model which shows logical layout of your database. let's List some advantages of good database design : very low or no redundant data is stored.  supporting planed or unplanned queries. good design easy to maintain and modify. from first glance you can understand it. an ERD consist from Entities and relationships between them; there exist...

Introduction to Machine Learning

Salmo Aliko . today I'll write about Machine Learning  , it is interesting topic. I put assumption I'm talking to computer since students. first of all , many of us dreamed to make robot, auto detection for missiles and treat it automatically and many awesome dreams, but we didn't know how achieve it. let me start with the definition and mentioning some of ML -M achine L earning -  applications . What is Machine Learning?   is the ability to learn without being explicitly programmed   and if we like mentioning more formal definition it is   A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E. application of ML : Computer Vision. Natural Language Processing. Game playing. Market segmentation. Medical Diagnosis.   Stock Market Analysis. Search Engines. Robo...