利用C#实现条形图、饼图的绘制(一)

    近日,在编写一个统计程序的时候,希望通过条形图、饼图的形式形象地展现统计数据,为此,专门到sourceforge、codeproject等开源网站阅读查找有关资料,在这过程当中,阅读了一份源码,感觉很多东西都可以借鉴,只不过,其最多只支持10个条形图的显示,因为画布仅有200*200,每个条形图占了10,间距又占了10。对于这一点,笔者感觉不甚满意,于是决定在参考借鉴原有代码的基础上,做一个更加通用的绘图程序。当然,因时间有限,笔者只做了针对条形图、饼图的实现。至于其他图形,有兴趣的朋友不妨自己实现。本篇文章将介绍条形图的实现,在另一篇文章中将介绍饼图的实现。
    为实现这个简单的绘图程序,首先构建了一个GraphDrawing项目工程。整个程序的设计思路相对较简单,通过类BarGraph来实现对条形图的绘制,通过WinForm窗体来实现对图形数据的输入及输出。此外,还特别增加了一个工具类Utils,里面包含了公共静态方法,当前用来获取图形绘制的颜色列表。
    整个绘图程序的实现,均是通过C#中的GDI+来处理的,只要充分利用GDI+中的各种方法,绘制这么一个相对简单的图形也就不成问题了。绘制条形图大体经过以下几个步骤:
    (1)创建Graphics对象实例;
    (2)设置图形及文本的属性;
    (3)设置画布和边框;
    (4)绘制标题文本;
    (5)循环绘制条形图;
    (6)绘制X及Y坐标的线条及文本;
    (7)绘制图例。
    以下是BarGraph类的代码示例:

    在WinForm中,调用也非常简单,代码示例如下:

最终的条形图绘制界面效果如下图所示:

    以上是关于条形图绘制的粗略介绍,该绘图程序可适应窗体大小的变化。在后面笔者将会对该程序作进一步完善,以实现对饼图的绘制。同时,需要说明的是,本绘图程序的部分实现思路参考了相关源码,在此对相关源码的作者表示感谢。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏雪无痕大黄蜂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值