首先,加载recharts:

library(recharts)

1 介绍Introduction

线图Line plot包括4个基本类型:

  • 线图: line
  • 平滑线图: curve
  • 面积图: area
  • 平滑面积图: wave

关键是:

  • 文本型x和数值型y
  • x (和series) 的各水平的每个组合只能对应一个y数据点
  • 平铺和堆积线图可通过工具箱按钮快速切换
  • 线图/面积图可通过工具箱快速切换为柱图/条图

2 用法Function Call

echartr(data, x, y, <series>, <weight>, <t>, <type>, <subtype>)
参数 要求

data

数据框格式的源数据

x

文本型自变量,其他类型会被转为因子。如提供多个变量,只传入第一个。

y

数值型应变量。如提供多个变量,只传入第一个。

series

数据系列变量,转为因子后计算。如提供多个变量,只传入第一个。

weight

权重变量映射各系列的线宽lineWidth。

t

时间轴变量,转为因子后计算。如提供多个变量,只传入第一个。

type

‘line’, ‘curve’, ‘area’, ‘wave’

subtype

  • 线图line: c(“stack”,“smooth”,“dotted”,“solid”,“dashed”)
    • stack: 堆积的数据系列向量
    • smooth: 平滑
    • dotted: 虚线
    • solid: 实线(默认)
    • dashed: 虚划线
  • 平滑线图curve: c(“stack”,“solid”)
  • 面积图area: c(“stack”,“smooth”,“dotted”,“solid”,“dashed”)
  • 平滑面积图wave: c(“stack”,“solid”)

3 举例Showcase

3.1 数据准备Data Preparation

让我们使用datasets包自带数据集airquality。数据结构如下:

aq <- airquality
aq$Date <- as.Date(paste('1973', aq$Month, aq$Day, sep='-'))
aq$Day <- as.character(aq$Day)
aq$Month <- factor(aq$Month, labels=c("May", "Jun", "Jul", "Aug", "Sep"))
head(aq)
##   Ozone Solar.R Wind Temp Month Day       Date
## 1    41     190  7.4   67   May   1 1973-05-01
## 2    36     118  8.0   72   May   2 1973-05-02
## 3    12     149 12.6   74   May   3 1973-05-03
## 4    18     313 11.5   62   May   4 1973-05-04
## 5    NA      NA 14.3   56   May   5 1973-05-05
## 6    28      NA 14.9   66   May   6 1973-05-06

3.2 线图Line Chart

3.2.1 单个数据系列Singular Series

type设为’line’。

echartr(aq, Date, Temp, type='line') %>%
    setTitle('NY Temperature May - Sep 1973') %>% setSymbols('none')

3.2.2 多个数据系列Multiple Series

echartr(aq, Day, Temp, Month, type='line') %>%
    setTitle('NY Temperature May - Sep 1973, by Month') %>% 
    setSymbols('emptycircle')

3.2.3 堆积线图Stacked Line Chart

type为’line’,subtype为’stack’。

echartr(aq, Day, Temp, Month, type='line', subtype='stack') %>%
    setTitle('NY Temperature May - Sep 1973, by Month') %>% 
    setSymbols('emptycircle')

3.2.4 权重变量映射线宽Line Width Mapped to Weight

把线宽和各系列(Month)风速均值关联起来。

echartr(aq, Day, Temp, Month, weight=Wind, type='line') %>%
    setTitle('NY Temperature May - Sep 1973, by Month') %>% 
    setSymbols('emptycircle')

3.2.5 带时间轴的线图Line Chart with Timeline

echartr(aq, Day, Temp, t=Month, type='line') %>%
    setTitle('NY Temperature May - Sep 1973, by Month') %>% 
    setSymbols('emptycircle')

3.3 平滑线图Curve (Smooth Line) Chart

3.3.1 平铺平滑线图Tiled Smooth Line Chart

type为’curve’。

echartr(aq, Day, Temp, Month, type='curve') %>%
    setTitle('NY Temperature May - Sep 1973, by Month') %>% 
    setSymbols('emptycircle')

3.3.2 堆积平滑线图Stacked Smooth Line Chart

type为’curve’,subtype为’stack’。

echartr(aq, Day, Temp, Month, type='curve', subtype='stack') %>%
    setTitle('NY Temperature May - Sep 1973, by Month') %>% 
    setSymbols('emptycircle')

3.4 面积图Area Chart

3.4.1 平铺面积图Tiled Area Chart

面积图实际上和线图是一回事,唯一不同之处是前者设定了areaStyle特性。

type为’area’。

echartr(aq, Date, Temp, type='area') %>%
    setTitle('NY Temperature May - Sep 1973') %>% 
    setSymbols('emptycircle')

3.4.2 堆积面积图Stacked Area Chart

type为’area’,subtype为’stack’。

echartr(aq, Day, Temp, Month, type='area', subtype='stack') %>%
    setTitle('NY Temperature May - Sep 1973, by Month') %>% 
    setSymbols('emptycircle')

3.5 平滑面积图Wave (Smooth Area) Chart

3.5.1 平铺平滑面积图Tiled Smooth Area Chart

type为’wave’。

echartr(aq, Date, Temp, type='wave') %>%
    setTitle('NY Temperature May - Sep 1973') %>% 
    setSymbols('emptycircle')

3.5.2 堆积平滑面积图Stacked Smooth Area Chart

type为’wave’,subtype为’stack’。

echartr(aq, Day, Temp, Month, type='wave', subtype='stack') %>%
    setTitle('NY Temperature May - Sep 1973, by Month') %>% 
    setSymbols('emptycircle')

4 其他设定Futher Setup

接下来可以配置控件、添加标注点/标注线,以及美化成图。

参考相关函数,尽情探索吧。