美文网首页R语言R语言数据分析R代码
R语言:highcharter包绘制可交互的基础图表

R语言:highcharter包绘制可交互的基础图表

作者: 数据老黄 | 来源:发表于2018-07-22 19:02 被阅读194次

    Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在Web网站或是Web应用程序添 加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。highcharter包是R语言中绘制Highcharts图表的包,本期介绍在R语言如何使用highcharter包绘制可交互的基础图表。Highcharts详情:www.hcharts.cn

    基本语法

    在介绍如何使用highcharter包进行绘图之前,我们先了解一些利用该包进行图表绘制的基本格式。highcharter包提供了两种绘制图形的方式,分别是hcharthighchart函数。

    hchart的基本语法格式如下,其中的hcaes类似ggplot2中的aes

    hchart(数据集,"图表类型",hcaes(x ="x轴",y = "y轴"))
    

    highchart的基本语法如下,highchart相比hchart会更加的灵活和方便。

    highchart() %>%   hc_xAxis(categories = x轴)%>%  hc_add_series(name = "数据名称", data = y轴)
    

    在了解基本的语法格式后,我们来详细的看一下如何进行各种常用图表的绘制。

    折线图

    基础折线图

    折线图的图表类型符号为line,按照基本的语法格式,折线图的绘制如下:

    #导入本文所需的包
    library(data.table)
    library(dplyr)
    library(plyr)
    library(highcharter)
    #导入所需数据集
    data(BOD)BOD_line <- BOD
    #基础折线图
    hchart(BOD_line,"line",hcaes(x ="Time",y = "demand"))
    

    显示点值的折线图

    利用hc_plotOptions可以进行各种图表内容的设置,接下来会经常看到这个函数,值得注意的是hc_plotOptions(图表类型= ******) 中的图表类型必须是当前绘制的类型符号,比如折线图则是line

    hchart(BOD_line,"line",hcaes(x ="Time",y = "demand")) %>%  
    hc_plotOptions(line= list(dataLabels = list(enabled =TRUE)))
    

    隐藏标记的折线图

    在不需要折线图上显示数据标记点时,我们需要将其隐藏,通过设置marker可以实现该功能。

    hchart(BOD_line,"line",hcaes(x ="Time",y = "demand")) %>%   
     hc_plotOptions(line= list(marker = list(enabled =FALSE)))
    

    平滑曲线的折线图

    平滑曲线的折线图的图表类型为spline

    hchart(BOD_line,"spline",hcaes(x ="Time",y = "demand")) 
    

    多条折线图

    当数据要通过某一列值分类,将另外一列的数据拆分成两部分作图时,hchart函数通过设置group参数实现;如果折线图的各条线的数据是在不同列时,则可通过highchart作图实现。实现方式分别如下:

    hchart函数通过设置group参数:

    #数据准备BOD_line$tag <- rep("a",nrow(BOD_line))
    BOD_line2 <- data.frame(Time = BOD_line$Time,demand = BOD$demand + 2,tag = rep("b",nrow(BOD_line)))
    BOD_line_rbind <- rbind(BOD_line,BOD_line2)
    #作图
    hchart(BOD_line_rbind,"line",hcaes(x ="Time",y = "demand",group = "tag"))
    

    highchart函数添加hc_add_series:

    #数据准备
    BOD_line3 <- mutate(BOD_line,demand2 = demand + 2)
    #作图
    highchart() %>%   hc_xAxis(categories = BOD_line3$Time)%>%  
     hc_add_series(name = "a", data = BOD_line3$demand) %>%  
     hc_add_series(name = "b", data = BOD_line3$demand2)
    

    柱状图

    基础柱状图

    柱状图的图表类型符号为column,按照基本的语法格式,柱状图的绘制如下:

    #数据准备
    BOD_Column <- mutate(BOD,Time=as.factor(Time))
    #作图
    hchart(BOD_Column,"column",hcaes(x ="Time",y = "demand"))
    

    显示值的柱状图

    类似折线图显示点值,只须将hc_plotOptions中的图表类型换为column

    hchart(BOD_Column,"column",hcaes(x ="Time",y = "demand"))%>%  
     hc_plotOptions(column= list(dataLabels = list(enabled =TRUE)))
    

    分组柱状图

    分组柱状图则类似多条折线图的作法,实现方式之一如下:

      BOD_Column2 <- mutate(BOD_Column,demand2 = demand + 2)
      highchart() %>% 
        hc_xAxis(categories = BOD_Column2$Time)%>%
        hc_add_series(name = "a", data = BOD_Column2$demand,type = "column") %>%
        hc_add_series(name = "b", data = BOD_Column2$demand2,type = "column")
    

    堆叠柱状图

    堆叠柱状图的实现,将hc_plotOptions中的参数stacking 设置为normal即可。

    #数据准备
    BOD_Column4 <- rbind(mutate(BOD_Column,tag = rep("a",nrow(BOD_Column))),  mutate(BOD_Column,tag = rep("b",nrow(BOD_Column)),demand =demand + 2 ))
    #作图
    hchart(BOD_Column4,"column",hcaes(x= "Time",y = "demand",group = "tag")) %>%    
     hc_plotOptions(column= list(stacking = "normal"))
    

    百分比堆叠柱状图

    hc_plotOptions中的参数stacking 设置修改为percent即可。

    hchart(BOD_Column4,"column",hcaes(x= "Time",y = "demand",group = "tag")) %>%  
     hc_plotOptions(column= list(stacking = "percent"))
    

    条形图

    基础条形图

    条形图的图表类型符号为bar,按照基本的语法格式,条形图的绘制如下:

    #数据准备
    BOD_Bar <- mutate(BOD,Time=as.factor(Time))
    #作图
    hchart(BOD_Bar,"bar",hcaes(x ="Time",y = "demand"))
    

    其他如:显示值的条形图、分组条形图、堆叠条形图等,可参考柱状图的作法方法进行作图,不在一一列举。

    散点图

    基础散点图

    散点图的图表类型符号为scatter,按照基本的语法格式,散点图的绘制如下:

    #导入数据集
    library(ggplot2)data(mpg)
    #作图
    hchart(mpg, "scatter", hcaes(x = "displ", y = "hwy"))
    

    分组散点图

    将参数group设置为进行分组的变量。

    hchart(mpg, "scatter", hcaes(x = "displ", y = "hwy",group = "class"))
    

    特殊的散点图--气泡图

    气泡图相比散点图多了一个维度来标明气泡的大小,气泡图的图表类型符号为bubble

    hchart(mpg[1:10,], "bubble", hcaes(x = "displ", y = "hwy",z = "cty",group = "drv"))
    

    面积图

    基础面积图

    面积图的图表类型符号为area,按照基本的语法格式,面积图的绘制如下:

    #数据准备
    data(sleep)sleep$extra_abs <- abs(sleep$extra)
    #作图
    hchart(sleep[1:10,], "area", hcaes(x = "ID", y = "extra_abs"))
    

    其他如:堆叠面积图、百分比堆叠面积图等,可参考柱状图的作法方法进行作图,不在一一列举。

    饼图

    基础饼图

    饼图的图表类型符号为pie,按照基本的语法格式,饼图的绘制如下:

    #数据准备
    explorer_rate <- data.frame(name = c( 'Internet Explorer', 'Firefox', 'Edge', 'Safari', 'Sogou Explorer', 'Opera', 'QQ', 'Other'),   rate =c(11.84,10.85,4.67,4.18,1.64,1.6,1.2,2.61))
    #作图
    hchart(explorer_rate, "pie", hcaes(name = "name", y = "rate"))
    

    显示值的饼图

    饼图的显示值,同样通过设置hc_plotOptions中的参数dataLabels ,同时还可设置format调整值显示的格式。

    hchart(explorer_rate, "pie", hcaes(x = "name", y = "rate")) %>%     
     hc_plotOptions(pie= list(dataLabels = list(enabled = TRUE,format='<b>{point.name}</b>: {point.rate:.1f} %')))
    

    以上是本期介绍在R语言如何使用highcharter包绘制可交互基础图表的全部内容,后续将会介绍highcharter包中如何进行图表优化以及高级图表绘制!

    相关文章

      网友评论

        本文标题:R语言:highcharter包绘制可交互的基础图表

        本文链接:https://www.haomeiwen.com/subject/ykkrmftx.html