2015-11-16 2 views
1

Я хочу составить график мгновенного заряда против времени, но график ничего не отображает.Почему элемент управления диаграммой не показывает какие-либо данные?

Что я делаю неправильно?

Вот мой код и снимок моего выхода:

namespace WindowsFormsApplication21 
    { 
     public partial class Form1 : Form 
     { 
      public Form1() 
     { 
      InitializeComponent(); 
     } 
     private void Form1_Load(object sender, EventArgs e) 
     { 
      double max = 24000000, min = 23999999.85; 
      chart1.ChartAreas.Add("0"); 
      chart1.ChartAreas[0].AxisY.Minimum = min; 
      chart1.ChartAreas[0].AxisY.Maximum = max; 
      chart1.Series[0].Color = Color.Red; 
     } 
     private void button1_Click(object sender, EventArgs e) 
     { 
      double[] q = new double[10]; 
      for (int i = 0; i < q.Length; i++) 
      { 
       int t = i + 1; 
       q[i] = (24 * Math.Pow(10, 6)) * Math.Exp(t/(2000 * Math.Pow(10,6))); 
       chart1.Series[0].Points.AddXY(t, q[i]); 
      } 
     } 
     } 
    } 

Это мой выход

+0

Можете ли вы написать более подробную информацию о том, что вы пытаетесь сделать и что вы хотите решить? –

+0

Я хочу сделать график мгновенной зарядки против времени , но графика ничего не отображает –

+0

но проблема с инструментом диаграммы –

ответ

0

Как вы можете видеть, ваши данные просто не помещаются значения; все выше 24M, что является максимальным показателем.

Вы не должны пытаться жестко кодировать эти значения imo. Они могут работать сегодня и перестать работать со следующим набором данных ..

Вот как вы можете установить их в коде, после добавив DataPoints:

ChartArea CA = chart1.ChartAreas[0]; 
Series S1 = chart1.Series[0]; 

CA.AxisY.Maximum = S1.Points.Max(x => x.YValues[0]); 
CA.AxisY.Minimum = S1.Points.Min(x => x.YValues[0]); 

CA.AxisY.LabelStyle.Format = "###,###,###,##0.000"; 

enter image description here

(Мои система показывает десятичные точки в немецкой локализации.)

Смежные вопросы