如何通过从数据库中获取值来绘制zedgraph [英] how to draw zedgraph by taking value from database
本文介绍了如何通过从数据库中获取值来绘制zedgraph的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想通过从数据库中获取值来绘制zedgrapg。我有chekbox的datagriedview。选择5 chekbox值传递给数据库后,为Yaxis取5个colums值。
这是我的代码,我只能绘制1个图表。我希望在一个窗格中有5个不同的y轴
I want to draw zedgrapg by taking value from database. I have datagriedview with chekbox. after selecting 5 chekbox value pass to database and take value of 5 colums for Yaxis.
This is my code what m trying, I Can draw only 1 graph. I want 5 in one pane with different y axis
s = dgvTanksandCompartments.CurrentRow.Cells["TANK_ID"].Value.ToString();
int i = Convert.ToInt32(s);
DataSet dstankcompartment = objcls.GetTankId("spTrend_TankCompartmentVolume_DateTimeWise", i, mydate );
DataTable dttankcompartment = new DataTable();
dttankcompartment = dstankcompartment.Tables[0];
totalrow = dttankcompartment.Rows.Count;
totalcol = dttankcompartment.Columns.Count;
DateTime[] dt1 = new DateTime[totalrow];
DateTime[] dt2 = new DateTime[totalrow];
x = new double[totalrow];
y = new double[totalrow];
for (int j = 0; j < totalrow; j++)
{
dt1[j] = Convert.ToDateTime((dttankcompartment.Rows[j].ItemArray[0]));
x[j] = (double)(new XDate(dt1[j]));
}
foreach (DataRow dr in dttankcompartment.Rows)
{
foreach (DataColumn dc in dttankcompartment .Columns )
{
if((dr [dc ] == DBNull.Value))
{
dr [dc ] = 0;
}
}
}
for (int m = 0; m < dttankcompartment.Rows.Count; m++)
{
y[m] = (float)Convert.ToDouble(dttankcompartment.Rows[m].ItemArray[2]);
}
GraphPane myPane1 = zedGraphControl1.GraphPane;
myPane1.Title.Text = "Tanks and Compartment";
myPane1.XAxis.Title.Text = "Time";
myPane1.YAxis.Title.Text = "Volume";
myPane1.XAxis.Type = AxisType.DateAsOrdinal;
myPane1.XAxis.Scale.Format = "dd-MM-yyyy HH:mm:ss.fff";
myPane1.XAxis.MajorGrid.IsVisible = true;
myPane1.XAxis.MinorGrid.IsVisible = true;
myPane1.XAxis.Scale.MajorUnit = DateUnit.Minute;
myPane1.XAxis.Scale.MinorUnit = DateUnit.Minute;
myPane1.XAxis.Title.IsVisible = true; //show the visibility of x axistitle.
myPane1.XAxis.Scale.Min = 0;
myPane1.XAxis.Scale.Max = 24;
myPane1.XAxis.Scale.MajorStep = 1;
myPane1.XAxis.MinorTic.Size = 1;
myPane1.XAxis.Scale.FontSpec.Angle = 90;
myPane1.XAxis.Title.FontSpec.Size = 10;
myPane1.YAxis.Title.FontSpec.Size = 10;
myPane1.XAxis.Scale.FontSpec.Size = 8;
myPane1.YAxis.Scale.FontSpec.Size = 8;
myPane1.YAxisList.Clear();
var y1 = myPane1.AddYAxis("Volume");
myPane1.YAxis.Scale.FontSpec.Size = 8;
var y2 = myPane1.AddYAxis("Volume");
myPane1.YAxis.Scale.FontSpec.Size = 8;
var y3 = myPane1.AddYAxis("Volume");
myPane1.YAxis.Scale.FontSpec.Size = 8;
var y4 = myPane1.AddYAxis("Volume");
myPane1.YAxis.Scale.FontSpec.Size = 8;
var y5 = myPane1.AddYAxis("Volume");
myPane1.YAxis.Scale.FontSpec.Size = 8;
zedGraphControl1.GraphPane.CurveList.Clear();
zedGraphControl1.GraphPane.GraphObjList.Clear();
LineItem myCurve1 = myPane1.AddCurve("Smooth" , x, y, System.Drawing.Color.Red, SymbolType.Circle);
myCurve1.Symbol.Fill = new Fill(System.Drawing.Color.Green);
myCurve1.Symbol.Size = 4;
myCurve1.Line.Width = 2;
myCurve1.Label.Text = "Tank_ID_"+s ;
//myCurve1.Label.FontSpec.Size = 6;
zedGraphControl1.ZoomButtons = MouseButtons.None;
zedGraphControl1.ZoomStepFraction = 0;
zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();
推荐答案
这篇关于如何通过从数据库中获取值来绘制zedgraph的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文