- 豆豆staR
-
public void InitializeZedGraph(DataTable m_dt,string name, string p_strname, string dstand)
{
myPane = zed.GraphPane;
myPane.Title.Text = p_strname + "趋势图";
myPane.XAxis.Title.Text = "检测日期";
myPane.YAxis.Title.Text = "检验值";
myPane.XAxis.MajorGrid.IsVisible = true;
myPane.YAxis.MajorGrid.IsVisible = true;
//背景颜色
myPane.Fill = new Fill(Color.White, Color.LightBlue, 90F);
myPane.Chart.Fill.IsVisible = false;
myPane.Legend.Fill.IsVisible = false;
list.Clear();
DataTable dtTime = new DataTable(); //用于计算X抽最大最小值的数据表
dtTime.Columns.Add("date", typeof(System.DateTime));
//DataRow dr = dtTime.NewRow();
bool b = m_dt.Columns.Contains("SAMPTIME"); //判断时间列是否存在
for (int i = 0; i < m_dt.Rows.Count; i++)
{
if (m_dt.Rows[i][name].ToString() != string.Empty)
{
DateTime dt;
if (b == true)
{
dt = Convert.ToDateTime(m_dt.Rows[i]["SAMPDATE"].ToString() + " " + m_dt.Rows[i]["SAMPTIME"].ToString());
}
else
{
dt = Convert.ToDateTime(m_dt.Rows[i]["SAMPDATE"].ToString());
}
DataRow dr = dtTime.NewRow();
dr["date"] = dt;
dtTime.Rows.Add(dr);
XDate xd = new XDate(dt);
double x = (double)xd;
double y = Convert.ToDouble(m_dt.Rows[i][name]);
list.Add(x, y);
}
}
myPane.CurveList.Clear();
myCurve = myPane.AddCurve(p_strname, list, Color.Green, SymbolType.Diamond);//SymbolType.None的定义绘制线条的形状
try
{
DateTime dMax = Convert.ToDateTime(dtTime.Compute("Max(date)", "true"));
DateTime dMin = Convert.ToDateTime(dtTime.Compute("Min(date)", "true"));
myPane.GraphObjList.Clear();
if (dstand != string.Empty)
{
StandZedGraph(dMax, dMin, dstand);
}
}
catch
{ }
myPane.XAxis.Type = AxisType.Date;
myPane.YAxis.Type = AxisType.Linear;
//X坐标时间显示格式
myPane.XAxis.Scale.Format = "yyyy-MM-dd hh:mm";
myPane.XAxis.Scale.MinorStep = 1;
//X轴大步长为5,也就是显示文字的大间隔
myPane.XAxis.Scale.MajorStep = 5;
//坐标点时间显示格式
zed.PointDateFormat = "yyyy-MM-dd hh:mm";
zed.IsShowPointValues = true;
// Calculate the Axis Scale Ranges
zed.AxisChange();//数据有变化重新绘制
zed.Refresh();
}