Сопоставление дат с числами в ZedGraph и C#

#c# #zedgraph

#c# #zedgraph

Вопрос:

У меня есть таблица с датой и размером данных. Когда я экспортирую список, его данные отображаются в виде

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

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

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

Редактировать:

Извините, похоже, что это график, но масштабирование действительно плохое, есть ли способ запустить масштабирование?

Решено.

Ответ №1:

Вам нужно сообщить ZedGraph, что ось имеет тип даты:

 myPane.XAxis.Type = AxisType.Date;
  

Хотя в нем не используется источник данных, существует руководство по использованию типа оси дат.

Комментарии:

1. Мне также понадобился zedGraphControl1. AxisChange();

2. Вы случайно не знаете, почему я должен щелкнуть в zedgraphcontrol, чтобы обновить его новым графиком?

3. Вызовите zedGraphControl1.Invalidate(); после обновления графика, чтобы убедиться, что он перерисован.

4. У меня есть еще один вопрос, не могли бы вы взглянуть на него, спасибо.