我在vs2003中,要画股票K线图以及饼图
在网上找了半天,终于确定一个工具……ZedGraph
先在添加引用,选择ZedGraph.dll
然后在工具箱中添加ZedGraph控件
将控件拖到页面上
然后在控件的RenderGraph事件中插入代码
饼图代码:
折线图及股票上证指数的K线图
DataTable dt = ssih.GetList("1=1 order by dataDate asc");
double[] x = new double[dt.Rows.Count +1];
double[] y1 = new double[dt.Rows.Count +1];
double[] y2 = new double[dt.Rows.Count +1];
double[] y3 = new double[dt.Rows.Count +1];
double[] y4 = new double[dt.Rows.Count +1];
double[] y5 = new double[dt.Rows.Count +1];
double[] y6 = new double[dt.Rows.Count +1];
XDate[] x1 = new XDate[dt.Rows.Count +1];
PointPairList pp1 = new PointPairList();
PointPairList pp2 = new PointPairList();
PointPairList pp3 = new PointPairList();
PointPairList pp4 = new PointPairList();
PointPairList pp5 = new PointPairList();
PointPairList pp6 = new PointPairList();
PointPairList pp7 = new PointPairList();
int minCount = Convert.ToInt32( dt.Rows.Count - 80);
for(int m=0;m<minCount;m++)
{
dt.Rows.Remove(dt.Rows[0]);
}
int i = 0;
foreach(DataRow dr in dt.Rows)
{
y1[i] = Convert.ToDouble(dr["tag1"].ToString())*100;
y2[i] = Convert.ToDouble(dr["tag2"].ToString())*100;
y3[i] = Convert.ToDouble(dr["tag3"].ToString())*100;
y4[i] = Convert.ToDouble(dr["tag4"].ToString())*100;
y5[i] = Convert.ToDouble(dr["tag5"].ToString())*100;
y6[i] = Convert.ToDouble(dr["tag6"].ToString())*100;
x[i] =new XDate(Convert.ToDateTime(dr["dataDate"]));
// Convert.ToDouble( Convert.ToDateTime(dr["dataDate"]).Month + "." + Convert.ToDateTime(dr["dataDate"]).Day) ;
pp1.Add(x[i],y1[i]);
pp2.Add(x[i],y2[i]);
pp3.Add(x[i],y3[i]);
pp4.Add(x[i],y4[i]);
pp5.Add(x[i],y5[i]);
pp6.Add(x[i],y6[i]);
i++;
}
GraphPane myPane = (GraphPane)pane[0];
myPane.XAxis.Type = AxisType.Date;
myPane.XAxis.Scale.Format = "MM-dd";
myPane.XAxis.Type = AxisType.DateAsOrdinal;
myPane.Legend.Position = LegendPos.InsideTopRight;
myPane.Legend.Location = new Location( 0.9f, 0.6f, CoordType.PaneFraction,
AlignH.Right, AlignV.Top );
myPane.Legend.FontSpec.Size =14f;
LineItem myCurve1 = myPane.AddCurve("熊市",pp1, Color.Green, SymbolType.Diamond);
LineItem myCurve2 = myPane.AddCurve("熊市反弹",pp2, Color.DarkMagenta, SymbolType.Diamond);
LineItem myCurve3 = myPane.AddCurve("熊转牛",pp3, Color.DeepSkyBlue, SymbolType.Diamond);
LineItem myCurve4 = myPane.AddCurve("牛调整",pp4, Color.Thistle, SymbolType.Diamond);
LineItem myCurve5 = myPane.AddCurve("牛加速",pp5, Color.Red, SymbolType.Diamond);
LineItem myCurve6 = myPane.AddCurve("牛转熊",pp6, Color.Chartreuse, SymbolType.Diamond);