#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. У меня есть еще один вопрос, не могли бы вы взглянуть на него, спасибо.