ZedGraph来源:http://sourceforge.net/project/showfiles.php?group_id=114675
对于图表而言,一般是三种表现形式:柱状图、饼状图和点线图。
实例:
myPane.XAxis.Tag = "车牌号码";
myPane.YAxis.Title.Text = tSetArea;
myPane.XAxis.Type = AxisType.Linear;
//myPane.Title.FontSpec.Size = 18;
//myPane.YAxis.Title.FontSpec.Size = 16;
PointPairList list = new PointPairList();//上
PointPairList list1 = new PointPairList();//下
////////////////有车牌号,车牌个数不定,必须按照车牌号分开来做/////////////////////////////
//dr["车牌号码"]
DataTable dt = ds.Tables[0];
int rowCount = dt.Rows.Count;
int positive = 1;
int negative = -1;
int zero = 0;
double apeak = 0.001;
list.Add(0, zero);
list1.Add(0, negative); /*、、、、、、、、、、、、、、、、、、头的图形 */
int Index = 0;
string firstName = String.Empty;
if (dt.Rows.Count > 0)
{
firstName = dt.Rows[0]["车牌号码"].ToString();
}
else
{
return;
}
ArrayList VehicleNoList = new ArrayList();
VehicleNoList.Add(firstName);
double pStart=0;
double pEnd=0;
for (int i = 0; i < rowCount; i++)
{//
bool span = false;
if (dt.Rows[i]["车牌号码"].ToString() != firstName)
{
Index += 24;
firstName = dt.Rows[i]["车牌号码"].ToString();
VehicleNoList.Add(firstName);
span = true;
}
DataRow dr = dt.Rows[i];
DateTime startTime = Convert.ToDateTime(dr["偏移开始时间"]);
DateTime endTime = Convert.ToDateTime(dr["偏移结束时间"]);
pStart = Index + startTime.Hour * 1.0 + startTime.Minute / 60.0;
pEnd = Index + endTime.Hour * 1.0 + endTime.Minute / 60.0;
/*、、、、、、、、、、、、、、、、、、上面的图形 */
list.Add(pStart, zero, pStart.ToString());//+
list.Add(pStart + apeak, positive, (pStart + apeak).ToString());//+
list.Add(pEnd, positive, pEnd.ToString());//+
list.Add(pEnd + apeak, zero, (pEnd + apeak).ToString());
if (span)
{
list.Add(Index, zero);
list.Add(Index+0.2, zero);
list.Add(Index + 0.2, zero);
list1.Add(Index - apeak, negative);
list1.Add(Index, zero);
list1.Add(Index + 0.2, zero);
list1.Add(Index + 0.2 + apeak, negative);
}
/*、、、、、、、、、、、、、、、、、、下面的图形 */
list1.Add(pStart, negative);//+
list1.Add(pStart + apeak, zero);
list1.Add(pEnd, zero);//+
list1.Add(pEnd + apeak, negative);//+
}
double xMax=24 + Index + 0.001;
list.Add(xMax, 0);
list1.Add(xMax, negative);
list.Sort(SortType.XValues);
list1.Sort(SortType.XValues);
LineItem curve = myPane.AddCurve(tAreaOutTime, list, MyCode.ColorDefine.Color8);
LineItem curve1 = myPane.AddCurve(tAreaInTime, list1, MyCode.ColorDefine.Color2);
效果: