1.下载zedgraph控件:http://download.csdn.net/detail/allisnew/322251
2.添加引用 zedgraph.dll
3.在工具箱的最后面添加常规控件--浏览--选择zedgraph.dll
4.编写如下初始化代码(也可以直接拖一个控件):
private zedgraphcontrol zedgraphcontrol1 = new zedgraphcontrol();
this.zedgraphcontrol1.location = new system.drawing.point(36, 48);
this.zedgraphcontrol1.name = "zedgraphcontrol1";
this.zedgraphcontrol1.scrollgrace = 0;
this.zedgraphcontrol1.scrollmaxx = 0;
this.zedgraphcontrol1.scrollmaxy = 0;
this.zedgraphcontrol1.scrollmaxy2 = 0;
this.zedgraphcontrol1.scrollminx = 0;
this.zedgraphcontrol1.scrollminy = 0;
this.zedgraphcontrol1.scrollminy2 = 0;
this.zedgraphcontrol1.size = new system.drawing.size(427, 247);
this.zedgraphcontrol1.tabindex = 0;
this.controls.add(zedgraphcontrol1);
5.编写绘图代码:
private void showchart()
{
zedgraphcontrol1.graphpane.curvelist.clear();
zedgraphcontrol1.graphpane.graphobjlist.clear();
// clearing not teste
graphpane mypane = zedgraphcontrol1.graphpane;
mypane.title.text = "消费者学历统计"; //设计图表的标题
mypane.xaxis.title.text = "学历类型"; //x轴标题
mypane.yaxis.title.text = "人数"; //y轴标题
// mypane.xaxis.type = zedgraph.axistype.date;
// date wont work in our case
pointpairlist ppla = new pointpairlist();
pointpairlist pplb = new pointpairlist();
pointpairlist pplc = new pointpairlist();
pointpairlist ppld = new pointpairlist();
for (int i = 1; i < 2; i++)
{
ppla.add(i, i + 3);
pplb.add(i + 1, i + 4);
pplc.add(i + 2, i + 5);
ppld.add(i + 3, i + 6);
}
// dragged drawing baritems out of forloop
baritem mybara = mypane.addbar("a", ppla, color.red);
baritem mybarb = mypane.addbar("b", pplb, color.blue);
baritem mybarc = mypane.addbar("c", pplc, color.gray);
baritem mybard = mypane.addbar("d", ppld, color.black);
zedgraphcontrol1.axischange();
zedgraphcontrol1.refresh();//这句话非常重要,否则不会立即显示
}
如需要横坐标显示文字:
private void showchart()
{
zedgraphcontrol1.graphpane.curvelist.clear();
zedgraphcontrol1.graphpane.graphobjlist.clear();
// clearing not teste
graphpane mypane = zedgraphcontrol1.graphpane;
// 画图面版标题
mypane.title.text = "收入统计";
// 画图面版x标题
mypane.xaxis.title.text = "区域";
mypane.xaxis.scale.min = 0;
//初始化数据
pointpairlist list = new pointpairlist();
pointpairlist list2 = new pointpairlist();
pointpairlist list3 = new pointpairlist();
for (int i = 0; i < 5; i++)////这里的数量要和lable的一致,比如横坐标显示了5个lable,这里就要给5个
{
list.add(i, i+1);
list2.add(i, i + 2);
list3.add(i, i + 3);
}
// 画图面版y标题
mypane.yaxis.title.text = "销售情况";
//柱的画笔
// public baritem addbar(string 名称, ipointlist 数据, color 颜色);
baritem mycurve = mypane.addbar("收入1", list, color.blue);
baritem mycurve1 = mypane.addbar("收入2", list2, color.purple);
baritem mycurve2 = mypane.addbar("收入3", list3, color.yellowgreen);
//mycurve.bar.fill = new fill(color.blue, color.white, color.blue);//渐变
// baritem mycurve2 = mypane.addbar("买农药", list2, color.red);
// mycurve2.bar.fill = new fill(color.red, color.white, color.red);
// baritem mycurve3 = mypane.addbar("买化肥", list3, color.green);
// mycurve3.bar.fill = new fill(color.green, color.white, color.green);
//mypane.xaxis.majortic.isbetweenlabels = true;
//xaxis标注
string[] labels = { "产品1", "产品2", "产品3", "产品4", "产品5" };
mypane.xaxis.scale.textlabels = labels;
mypane.xaxis.type = axistype.text;
//图区以外的颜色
// mypane.fill = new fill(color.white, color.fromargb(200, 200, 255), 45.0f);
//背景颜色
// mypane.chart.fill = new fill(color.red, color.lightgoldenrodyellow, 45.0f);
zedgraphcontrol1.axischange();
zedgraphcontrol1.refresh();
}
以上就是c# 使用zedgraph绘制 柱状图的详解的内容。