ASP.NET C#动态显示柱形图

本文介绍了一种使用ASP.NET C#动态创建柱形图的方法,通过拉伸预设图片来模拟柱形效果。这种方法适用于简单柱形图的展示,不需要额外插件且版权无忧。在页面中,利用Image和Label控件展示柱形图及其对应数值,通过异步获取数据并计算比例,动态设置图片宽度以保持高度不变,实现了数据对比的功能。
摘要由CSDN通过智能技术生成

很多人都问这个的效果,我整了个截图发上来

项目中的一个需求,不知道是不是正解,但是搞定之后觉得挺简单的,也没有用到什么插件,更不会有版权的问题,不过只是简单的柱形图而已,大家可以参照,有时忽悠一下boss或者客户还是不错的,呵呵

我是横向显示柱形图, 事先准备一个窄点的图,便于动态拉伸冒充柱形图,我准备的图是高30,宽11,如下图

  左右一定不要有渐变或者是边框之类的,这样横着拉伸就不会有不清晰的情况出现,如果你是弄竖着的就注意上下的部分,一个道理。

我是六个柱形图的对比,界面上放Image1--Image6   默认显示上面图,  每个Image后面跟一个Lable, Label1-label6   对应显示柱形图的数值,label7是他们的和 (在赋值的时候,我还处理了没有数据的情况,显示另外一个图,如倒数第二个)

然后我是异步取六个数,如果取的数我就不说了,反正取了6个数值分别写到六个lable里,然后执行下面的代码,
下面的代码,大概的意思是对比六个数值,先取出最大的一个来,以这个最大的为标准,以柱形图最宽为300为限, 动态的算出各个图的比例并设置,设完图的宽后,再强制设置一下它原来的高, 我这里是30,因为你不设置高的话,图就按比例变了高度。

     private   void  DrawImage()
    
{
        
float valM = 0;
        
float valTemp = 0;
        
float valSum = 0;

        
if (IsNumeric(Label1.Text))
        
{
            valM 
= Convert.ToSingle(Label1.Text);
            valSum 
= Convert.ToSingle(Label1.Text );
            
        }

        
if (IsNumeric(Label2.Text))
        
{
            valSum 
+= Convert.ToSingle(Label2.Text);

            
if (valM < Convert.ToSingle(Label2.Text))
                valM 
= Convert.ToSingle(Label2.Text);
        }

        
if (IsNumeric(Label3.Text))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值