2011-07-08 24 views
6

mam te wartości XY:Jak ustawić wartości w osi x MSChart przy użyciu C#

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

ale muszę pokazać wartości X na wykresie jak ten:

X = "9-10 "

X =" 10-11"

X = "11-12"

Jak mogę to osiągnąć?


Jak dotąd jest to co znalazłem:

Chart

i oto kod:

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

jak widać mogę pracować z liczbami, a zestaw teksty dla etykiet osi X, ale mogę to zrobić tylko dla wartości DataPoints, potrzebuję go dla całego zakresu wartości.

Wszelkie pomysły proszę?

Odpowiedz

7

Oto odpowiedź dzięki SIPLA:

pracujących z etykietami zwyczaj i imprezy Dostosuj:

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

1

ciekaw, dlaczego tablica zakres został rozwalony tak. Byłoby czystsze umieszczenie tablicy w nawiasach, jak to zdefiniowano, a także zainicjowano. na przykład

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 
*/ 
Powiązane problemy