Отображение дат и чисел в ZedGraph и C#

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

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

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

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

Решено.


person Community    schedule 19.11.2010    source источник


Ответы (1)


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

myPane.XAxis.Type = AxisType.Date;

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

person Lazarus    schedule 19.11.2010
comment
Мне также понадобился zedGraphControl1.AxisChange(); - person ; 19.11.2010
comment
Вы случайно не знаете, почему я должен щелкнуть в zedgraphcontrol, чтобы обновить его с помощью нового графика? - person ; 19.11.2010
comment
Вызовите zedGraphControl1.Invalidate(); после обновления графика, чтобы убедиться, что он перерисован. - person Lazarus; 20.11.2010
comment
У меня есть еще один вопрос, если вы могли бы взглянуть на него, спасибо. - person ; 23.11.2010