博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Highcharts】 绘制饼图和漏斗图
阅读量:6670 次
发布时间:2019-06-25

本文共 3008 字,大约阅读时间需要 10 分钟。

1.outModel类设计

  设计outModel类首先研究下Highcharts中series的data数据格式,发现饼图和漏斗图都可以使用这样格式的数据

series: [{

    name: 'Unique users',
    data: [
        ['Website visits', 15654],
        ['Downloads', 4064],
        ['Requested price list', 1987],
        ['Invoice sent', 976],
        ['Finalized', 846]
        ]
    }]

    刚看到数据格式的时候,会不自觉的想起Dictionary<string,int>或者Hashtable ,outModel就会设计成以下两种形式

    public class HomeOut

      {
        public string Name { get; set; }//渲染series[0].name
        public Dictionary<string, int> Dicdata { get; set; }//渲染series[0].data
      }
    或者

    public class HomeOut

      {
        public string Name { get; set; }//渲染series[0].name
        public Hashtable Ht { get; set; }//渲染series[0].data
      }

    但是会发现当 return Json(outModel, JsonRequestBehavior.AllowGet);的时候,前台获取到的Dicdata 或者Hashtable 只能是object Object,所以顺其自然的会想到Jquery解析数据,的确能解析成功,但是在把数据填充Highcharts的时候会发现怎么也填充不对,push()和chart.series[0].data=解析过的json数据,都不能实现。也许是自己研究的不对,有看到的园友,成功实现的请留言指导。

    后来,迫不得已只能才用以前自己使用Highcharts绘制柱状图和折线图的方法了,下面开始

    设计outModel 的时候,我设计成了这样

 

    

public class HomeOut        {          public string Name { get; set; }          public List
tempClass { get; set; }        }public class TempClass      {        public string name { get; set; }        public int y { get; set; }      }

 

    之所以设计成这样,我是发现绘制饼图和漏斗图的时候series还可以这样写

饼图:  

series: [{              type: 'pie',              name: 'Browser share',              data: [                    ['Firefox', 45.0],                    ['IE', 26.8],                     {                    name: 'Chrome',                    y: 12.8,                    sliced: true,                    selected: true                      },                    ['Safari', 8.5],                    ['Opera', 6.2],                    ['Others', 0.7]                  ]            }]
View Code

 

漏斗图

series: [{     name: 'Unique users',     data: [     ['Website visits', 15654],     ['Downloads', 4064],     {       name:'Requested price list',       y:1987     },     ['Invoice sent', 976],     ['Finalized', 846]       ]    }]
View Code

 

     对比之下,两个图表的data都可以才用{name:'***',y:***}格式

下面贴出全部代码(排版还不会,就不整了)

HomeCotroller

public ActionResult Index2(){return View();}public ActionResult GetData(){var outModel = new HomeOut();//Dictionary
dic = new Dictionary
() { //{"wo",1990},//{"you",1200},//{"she",1000},//{"it",800}//};//Hashtable ht = new Hashtable();//ht.Add("wo", 1990);//ht.Add("you", 1900);//ht.Add("she", 1800);//ht.Add("it", 1700);//ht.Add("he", 1600);//outModel.dicdata = dic;outModel.Name = "123";List
tempClassList = new List
(){new TempClass(){name="wo",y=1},new TempClass(){name="you",y=2},new TempClass(){name="she",y=3},new TempClass(){name="he",y=3}};outModel.tempClass = tempClassList;return Json(outModel, JsonRequestBehavior.AllowGet);}
View Code

 

cshtml页面

View Code

 

js

View Code

 

转载于:https://www.cnblogs.com/lb12081116/p/4371634.html

你可能感兴趣的文章
2017总结一
查看>>
MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法
查看>>
Power Designer数据库建模工具,正向、逆向工程
查看>>
Libevent学习-02:搭建CentOS下的开发环境
查看>>
yum install 与 yum groupinstall 的区别
查看>>
PHP协程入门详解
查看>>
Java_Reflect_1
查看>>
HTML中的<table>标签及其子元素标签,JS中DOM对<table>的操作
查看>>
MobPush推送证书制作
查看>>
springmvc源码解析之配置加载ContextLoadListener
查看>>
网站安全防护工作
查看>>
如何判断一个以太坊地址是不是合约?
查看>>
逆袭!? 期待下一个“BCH”出现
查看>>
opengl es3.0学习篇五:图元装配跟光栅化
查看>>
Qt之添加菜单项&状态栏
查看>>
负载均衡在分布式架构中是怎么玩起来的?
查看>>
Java程序员在工作的同时应该具备什么样的能力?
查看>>
Dubbo深入分析之Cluster层
查看>>
分析Padavan源代码,二
查看>>
WordPress的WPML外挂出问题恐出现安全漏洞
查看>>