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绘制 柱状图的详解的内容。