How to set x-axis values ​​of MSChart using C #

I have these XY values:

Series S1 = new Series() S1.Points.AddXY(9, 25); S1.Points.AddXY(10, 35); S1.Points.AddXY(11, 15); chart1.Series.Add(S1); 

but I need to show the X values ​​in the graph as follows:

X = "9-10"

X = "10-11"

X = "11-12"

How can i achieve this?


So far, this is what I found:

Chart

and here is the code:

 private void Form1_Shown(object sender, EventArgs e) { chart1.ChartAreas[0].AxisX.Minimum = 7; chart1.ChartAreas[0].AxisX.Maximum = 15; Series S1 = new Series(); S1.Points.AddXY(9, 25); S1.Points.AddXY(10, 35); S1.Points.AddXY(11, 15); chart1.Series.Add(S1); chart1.Series[0].Points[0].AxisLabel = "9-10"; chart1.Series[0].Points[1].AxisLabel = "10-11"; chart1.Series[0].Points[2].AxisLabel = "11-12"; 

as you can see, I work with numbers and set texts for X axis labels, but I can only do this for DataPoints, I need this for the whole range of values.

Any ideas please?

+6
source share
2 answers

Here is the answer thanks to sipla:

work with custom labels and Customize event:

 string[] range = new string[10]; private void Form1_Shown(object sender, EventArgs e) { chart1.ChartAreas[0].AxisX.Minimum = 7; chart1.ChartAreas[0].AxisX.Maximum = 16; range[0] = ""; range[1] = "7-8"; range[2] = "8-9"; range[3] = "9-10"; range[4] = "10-11"; range[5] = "11-12"; range[6] = "12-1"; range[7] = "1-2"; range[8] = "2-3"; range[9] = ""; Series S1 = new Series(); S1.Points.AddXY(9, 25); S1.Points.AddXY(10, 35); S1.Points.AddXY(11, 15); chart1.Series.Add(S1); } int count; private void chart1_Customize(object sender, EventArgs e) { count = 0; foreach (CustomLabel lbl in chart1.ChartAreas[0].AxisX.CustomLabels) { lbl.Text = range[count]; count++; } } 

Graph

+7
source

I wonder why your array of arrays has been stretched like this. It would be easier to place your array in brackets since it was defined and also initialized. eg

 string[] range = new string[10] {"","7-8","8-9","9-10","10-11","11-12","12-1","1-2","2-3",""}; /* The tenth element is also likely unnecessary as it simply repeats the first element of the array */ 
+1
source

Source: https://habr.com/ru/post/892316/


All Articles