2010-11-19 3 views
0

Ich habe eine Tabelle, die Datum und Datengröße hat. Wenn ich die Liste seiner Daten exportieren erscheinen alsPlotten von Daten im Vergleich zu Zahlen in ZedGraph und C#

11/1/10|1 
11/2/10|2 
11/3/10|16 

ich einfach ein Liniendiagramm aus diesen Daten erstellen möchte, aber wenn ich sehe, ob es oder nicht die Graph gezeichnet ist, ist nie aufgetragen, auch ist es eine Möglichkeit, zu ändern die x-Achse von einer 0-100 Nummerierung zu den Daten, die aufgeführt sind?

private void CreateGraph_DataSource(ZedGraphControl zedGraphControl1) 
{ 
    string project = listBox1.SelectedItem.ToString(); 
    string sql = "select date,datasize from dbo.x where project = '"+project+"' order by date"; 
    DataTable projects = null; 
    SqlDataAdapter dataadapt = null; 
    SqlConnection con = new SqlConnection("Data Source= W ;Initial Catalog= ding;Integrated Security= SSPI"); 
    con.Open(); 
    SqlCommand cmd = new SqlCommand(sql, con); 
    cmd.ExecuteNonQuery(); 
    projects = new DataTable(); 
    dataadapt = new SqlDataAdapter(cmd); 
    dataadapt.Fill(projects); 
    con.Close(); 
    GraphPane myPane = zedGraphControl1.GraphPane; 
    myPane.Title.Text = project; 
    myPane.YAxis.Title.Text = "Size"; 
    myPane.XAxis.Title.Text = "Date"; 
    DataSourcePointList dsp = new DataSourcePointList(); 
    dsp.DataSource = projects; 
    dsp.XDataMember = "Date"; 
    dsp.YDataMember = "DataSize"; 
    LineItem myCurve = myPane.AddCurve("DataSize", dsp, Color.DarkViolet); 
    myCurve.Line.Fill = new Fill(Color.Red, Color.White); 
    LineItem myCurve2 = myPane.AddCurve("Date", dsp, Color.DarkViolet); 
    myCurve2.Line.Fill = new Fill(Color.Green, Color.White); 
    myCurve.Line.Width = 2.0F; 
    myCurve2.Line.Width = 2.0F; 
    zedGraphControl1.AxisChange(); 
    myPane.XAxis.Type = AxisType.Date; 
} 

Edit:

Sorry, es erscheint die grafische Darstellung zu sein, aber die Skalierung ist wirklich schlecht, ist es eine Möglichkeit, die Skalierung einstellen zu beginnen?

Gelöst.

Antwort

1

Sie müssen ZedGraph sagen, dass die Achse ist ein Datum, Typ:

myPane.XAxis.Type = AxisType.Date; 

Während es keine Datasource nicht verwendet es eine tutorial das Datum Achsentyp zur Verwendung.

+0

Ich brauchte auch zedGraphControl1.AxisChange(); –

+0

Würdest du zufällig wissen, warum ich in die Zedgraph-Steuerung klicken muss, um sie mit der neuen Grafik zu aktualisieren? –

+0

Rufen Sie 'zedGraphControl1.Invalidate();' auf, nachdem Sie das Diagramm aktualisiert haben, um sicherzustellen, dass es neu gezeichnet wird. – Lazarus