2015-05-06 5 views
0

Я использую библиотеки C# и ZedGraph для рисования графика между временем и температурой. Входные значения считываются из текстового файла. Ожидается, что кривая графа будет прогрессирующей, но где, когда кривая не прогрессирует, она движется вперед и назад, не имеет значения для точек. Но точки правильно построены на графике.C# Zedgraph, графики прыжки

enter image description here

Вот мой код ..

private void Form2_Load(object sender, EventArgs e) 
    { 
    GraphPane myPane = Gcontrol.GraphPane; 

    // Set the title and axis labels 
    myPane.Title.Text = "Date Time Chart"; 
    myPane.XAxis.Title.Text = "TimeFrame"; 
    myPane.YAxis.Title.Text = "Temperature"; 

    //List to hold Points to be plotted 
    PointPairList pList = new PointPairList(); 

    SampleData sd = new SampleData(); 
    sd.getSampleData(); 


    for (int i = 0; i < sd.x.Count; i++) 
    { 
     pList.Add(sd.x[i],sd.y[i]); 
    } 

    LineItem curve = myPane.AddCurve("Points", pList, Color.Black, SymbolType.Diamond); 
    curve.Line.IsSmooth = true; 
    myPane.XAxis.Type = AxisType.Date; 
    myPane.XAxis.Scale.FontSpec.Angle = 65; 
    myPane.XAxis.Scale.MajorStep = 1; 
    myPane.XAxis.Scale.MajorUnit = DateUnit.Hour; 
    myPane.XAxis.Scale.MinorUnit = DateUnit.Hour; 
    myPane.XAxis.Scale.Format = "dd-MMM-yy HH:MM"; 
    Gcontrol.AxisChange(); 

} 

SampleDataClass: содержимое файла

class SampleData 
{ 
    public List<double> x = new List<double>(); 
    public List<double> y = new List<double>(); 

    public void getSampleData() 
    {    

     string[] lines = System.IO.File.ReadAllLines("input.txt"); 
     foreach (string line in lines) 
     { 
      x.Add(new XDate(Convert.ToDateTime(line.Split(',')[0].Trim())));     
      y.Add(Convert.ToDouble(line.Split(',')[4].Trim())); 

     } 

    } 
} 

input.txt: Колонка 1 содержит время и Колонка 5 содержит ТЕМПЕРАТУРА

input.txt file contents

+0

вы пробовали отладки и глядя на данные после того, как вы читали его, чтобы обеспечить вы все правильно поняли? Например, я вижу, что у вас AM/PM в файле, правильно ли это прочитано и проанализировано? –

+0

@ Karlsen. Да, я поставил точку отладки и проверил время, они читаются и интуитивно понятны. Я даже нахожу, что точки графика строятся точно. Это только кривая, которая не движется постепенно. – jaycyborg

ответ

1

Наконец нашел его, я должен был установить

curve.Line.IsSmooth = false; 

(или) полностью удалить строку

curve.Line.IsSmooth = true; 
Смежные вопросы