如何使用C#在x轴MSChart中设置值

我有这些XY值:

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

但我需要在图中显示X值,如下所示:

X = “9-10”

X = “10-11”

X = “11-12”

我怎样才能做到这一点?


到目前为止,这是我发现的:

图表

这是代码:

 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"; 

正如你所看到我使用数字,并为X轴标签设置文本,但我只能为DataPoints值做这些,我需要它为整个值范围。

有什么想法吗?

以下是sipla的答案:

使用自定义标签和Customize事件:

 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++; } } 

图形

好奇为什么你的范围arrays像这样蔓延。 将数组放在括号中会更加清晰,因为它已定义并初始化。 例如

 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 */