highcharts一点理解

最近使用到图表, Echarts,Highcharts,这2大图表还是非常优秀的图表库,在这里我就简单的讲下Highcharts图表的使用和理解。

博主第一次接触的图表就是Highcharts图表,很快被它吸引到了, 因为样例很多,还很漂亮,使用也方便。Highcharts是一个纯JS编写的一个图表库,兼容性强,效率高,而且还是免费的。

https://www.hcharts.cn/download   highcharts的下载地址,中文的。

https://www.hcharts.cn/docs       highcharts的使用教程,很详细。

https://api.hcharts.cn/highcharts   highcharts的中文api,不可下载,在线浏览。

下面开始写higcharts图表。

1. 创建 div 容器

在页面的 body 部分创建一个 div,并指定必须的属性(ID,高度和宽度等),代码如下

<div id="container" style="min-width:800px;height:400px"></div>

2. 编写图表配置代码

创建 div 容器后,就可以开始编写 Highcharts 图表配置代码,这部分代码用 <script></script> 包括,可以放在页面代码的任意位置(当然最好的做法是放在 </body> 之前)。下面是条形图的配置

var chart = new Highcharts.Chart(‘container‘, {// 图表初始化函数,其中 container 为图表的容器 div
    chart: {
        type: ‘column‘                           //指定图表的类型,默认是折线图(line)    },
    title: {
        text: ‘我的第一个图表‘                 //指定图表标题
    },
    xAxis: {
        categories: [‘苹果‘, ‘香蕉‘, ‘橙子‘]   //指定x轴分组
    },
    yAxis: {
        title: {
            text: ‘something‘                 //指定y轴的标题
        }
    },
    series: [{                                 //指定数据列
        name: ‘小明‘,                          //数据列名
        data: [1, 0, 4]                        //数据
    }, {
        name: ‘小红‘,
        data: [5, 7, 3]
    }]
});

效果如下:

图表配置有三种写法。

1、通过 dom 调用 highcharts() 函数的方式

$("#container").highcharts({
    // Highcharts 配置
}); 

2、通过 chart.renderTo 来指定

var charts = new Highcharts.Chart({
    // Highcharts 配置
    chart : {
        renderTo : "container"  // 注意这里一定是 ID 选择器
    }
}); 

3、通过构造函数

var charts = new Highcharts.Chart(‘container‘, {
  // Highcharts 配置
});

Highcharts的图表解读:

这个ppt是本人写的, 现在手懒,直接上图了啊。

下面是type类型:

Type:所支持的图表类型:

area          {面积图}polygon{多边形图}

arearange{面积范围图}pyramid{金字塔图}

areaspline{面积曲线图}scatter{散点图}

areasplinerange{面积曲线范围图}     series{通用数据列}

bar   {条形图}        solidgauge{圆形进度条式测量图}

boxplot      {箱线图}    spline{曲线图}

bubble   {气泡图}    treemap{树状图}

column   {柱状图}    waterfall{瀑布图}

columnrange{柱状范围图}    heatmap{热力图}

errorbar{误差线图} line{直线图}

funnel    {漏斗图} pie {饼图}

gauge    {仪表图}

                            这是重要的!修改所用的。series数据!

Highchatrs的下钻图:

关键字就是  drilldown 这个属性。

在你需要点击的图表的series->data中配上 drilldown: id (id为drilldown中series的id)

点击图表后出现的数据来自 :drilldown这个属性中配置series里id所对应的数据列,

如下面代码:

$(function () {
    // Create the chart
    $(‘#container‘).highcharts({
        chart: {
            type: ‘column‘
        },
        title: {
            text: ‘Basic drilldown‘
        },
        xAxis: {
            type: ‘category‘
        },
        legend: {
            enabled: false
        },
        plotOptions: {
            series: {
                borderWidth: 0,
                dataLabels: {
                    enabled: true
                }
            }
        },
        series: [{
            name: ‘12‘,
            colorByPoint: true,
            data: [{
                name: ‘李‘,
                y: 5,
                drilldown: ‘小李‘
            }, {
                name: ‘张‘,
                y: 2,
                drilldown: ‘小张‘
            }, {
                name: ‘王‘,
                y: 4,
                drilldown: ‘老王‘
            }]
        }],
        drilldown: {
            series: [{
                type: ‘line‘,
                id: ‘小李‘,
                data: [
                    [‘车‘, 4],
                    [‘狗‘, 2],
                    [‘猫‘, 1],
                    [‘其他‘, 2],
                    [‘猪吗?‘, 1]
                ]
            }, {
                type: ‘spline‘,
                id: ‘小张‘,
                data: [{
                    name: ‘苹果‘,
                    y: 4
                },{
                    name: ‘橘子‘,
                    y:2,
                    drilldown: ‘橘子好坏‘
                }]
            }, {
                type: ‘pie‘,
                id: ‘老王‘,
                data: [
                    [‘邻居1‘, 4],
                    [‘邻居2‘, 2],
                    [‘邻居3‘, 2]
                ]
            },{
                id: ‘橘子好坏‘,
                data: [
                    [‘甜的‘, 4],
                    [‘酸了‘, 2],
                    [‘没味道‘, 2]
                ]
            }]
        }
    });
});

总之highcharts的图表确实很好用,理解不全之处,请见谅。

时间: 2024-08-26 15:15:56

highcharts一点理解的相关文章

线程的一点理解

一.线程起源 线程的产生基于通过共享公共的内存空间来交换数据可提高协作进程间的通信效率这一思想.线程是程序执行流的最小单元,是进程中的一个实体,一个标准的线程由线程ID.寄存器集合和堆栈组成.是被系统独立调度和分配的基本单位.线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源.一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行.由于线程之间的相互制约,致使线程在运行中呈现出间断性. 在某一时刻,进程内只有一个称为

我对直接插入排序的一点理解

今天复习排序,发现自己还是没什么长进,不过对于直接插入排序,还是有更深入的一点理解,这里留下点痕迹. 插入排序分为3类,即直接插入排序.二分排序以及希尔排序. 这里简单描述一下直接插入排序的思路.假如你现在是一名新生,早上全学院的学生去文体馆前集合,一个专业一列总队,而你去晚了,不知道自己该站哪,于是需要把自己插入到一个队列中去,这里模拟一下大脑的思路.因为你去晚了,所以你的同学都已经按照高矮顺序站好了,你从队尾开始比较,假如他比你低,ok,没他啥事了,如果他比你高,那他就得往后退,给你留下你站

Android measure和layout的一点理解

首先,推荐文章,http://blog.csdn.net/hqdoremi/article/details/9980481,http://www.docin.com/p-571954086.html 我理解measure的作用有2个:一个就是调用子view的measure函数,生成他们的高度和宽度,以便在自己的layout阶段参考:另一个是为父view提供关于自己的测量的width和height(这个宽度和高度往往和子view的测量高度和宽度有关),以便父view在layout阶段参考. lay

关于进程的一点理解

一.什么是进程? 进程包含存储在文件中的一组指令,该文件被读入内存并执行.正在执行的每个唯一的实例被称为进程,并且给它唯一一个标识,成为进程ID,它由操作系统确定.比如你在电脑中同时打开两个QQ,那么这两个程序就叫做进程,而且有两个不同的ID号. 二.进程如何创建? 被称为子进程的新进程由父进程的已存在的进程通过调用fork函数创建. pid=fork();//fork函数回传给pid的值是新进程的ID,数据类型为pid_t,属于int型. 子进程被创建为父进程的一个副本. fork函数在成功时

关于销售的一点理解

[关于销售的一点理解] 1.大多数人存在这样的偏见:销售人员和其他“中间人”很碍事,优良产品应该在生产出来后直接被神奇地分销出去. 这句话反着说,就正确了:销售人员和其他“中间人”很重要,优良产品应该在生产出来后由销售人员分销出去. 2.工程师喜欢制造东西,而不喜欢销售这些东西.但顾客并不会因为你生产了就来买.让顾客来买,并不像看起来那么简单. 3.广告之所以重要,是因为它确实有效.拒绝明显的推销术并不难,但广告不会立刻让你购买产品,而是为以后的购买埋下伏笔. 4.销售人员精心设计活动来改变表象

convertView&amp;setTag方法的一点理解

前言 首先我们要知道setTag方法是干什么的,SDK解释为 Tags Unlike IDs, tags are not used to identify views. Tags are essentially an extra piece of information that can be associated with a view. They are most often used as a convenience to store data related to views in th

[转载] 对函数式编程的一点理解

原文: https://github.com/nixzhu/dev-blog/blob/master/2015-07-30-functional-programming.md 对函数式编程的一点理解 虽然有不少对“函数式编程”的解释,但我没有遇到让我满意的.我不是说解释要多么的具体.全面,或者让我立马会使用.变得很厉害,我就想知道它是怎么一回事儿. 作者:@nixzhu 先考虑一个过程.假设您性别男,爱好女.有位优雅的女士愿意与您做爱,不过这位女士对做爱有些要求:前戏至少要15分钟,性交要求在3

对JS回调函数的一点理解

之前写的异步JS是纯译文,现在刚好工作了2个月,想谈谈我自己对JS回调函数的一点理解,欢迎渴望大家的指正和交流. 回调函数从形式上看就是把函数b作为参数传给函数a,在a的函数体里调用函数b 1 function a(b) { 2 b(); 3 } 4 function b() { 5 ... 6 } 这样做的意义是什么呢 1.控制执行流程,函数b只能在函数a执行后才执行 2.根据不同的需求,可以有各种各样的函数b 3.最重要的,是可以把通过函数a获取的数据传递给函数b 1 function a(

关于web开发的一点理解

对于web开发上的一点理解 1 宏观上的一点理解 网页从请求第地址 到获得页面的过程:从客户端(浏览器)通过地址 从soket把请求报文封装发往服务端   服务端通过解析报文并处理报文最后把处理的结果 封装成响应报文 发送给客户端(浏览器)  ,客户端解析响应报文  把正文(html css  javascript)渲染成我们见到的页面. 这就是我们如何看到页面的过程 图解 2对于网页的开发的框架的一点理解 上面提到了网页处理的过程  中 服务端解析请求报文 处理请求报文的过程 就是网站开发的框