首先,加载recharts:

library(recharts)

1 介绍Introduction

创建Echarts对象的基本框架是

第1步 echart => 第2步 set[Widgets] => 第3步 set[Aesthetics]. 

第1步生成Echarts对象的结构,第2步创建/修改控件,而第3步修改控件的参数。如果要修改series部件内的参数怎么办?你需要setSeries

与其它set[Widgets]函数相比,setSeries是一个较低级的函数。它直接把参数列表以list形式传入Echarts对象,因此可能导致意外错误。建议在决定使用setSeries前尽可能熟悉echarts的结构。

2 用法Function Call

setSeries(chart, series = NULL, timeslots = NULL, ...)
参数 要求

chart

Echarts对象,由echartR/echart创建。

series

系列,可以是系列名称,或索引值。如果系列名称不在已有的系列列表中,则为视为新系列插入Echarts对象中。如设为NULL,则作用于所有系列。

timeslots

时间轴切片,可以是时间轴索引值或z变量名称。如果设为NULL,则作用于整个时间轴。

省略号,拟传入Echarts对象的参数列表

2.1 通用的省略号属性列表Generic Features in Elipsis

属性 解释

type

图类型,如 ‘line’, ‘bar’, ‘scatter’, ‘k’, ‘pie’, ‘radar’, ‘chord’, ‘force’, ‘map’… 如设为NULL,该系列不被显示。

name

系列名称。

tooltip

参见setTooltip

data

echartR的data部分

itemStyle

参见itemStyle

markPoint

参见addMarkPoint

markLine

参见addMarkLine

clickable

数据图形是否可点击,默认为TRUE

z

第二级图层控制,默认为2。

zlevel

第一级图层控制,默认为0。

2.2 不同图类特有的省略号属性列表Chart-type-specific Features in Elipsis

2.2.1 线图Line/面积图Area

属性 解释

stack

TRUE/FALSE

xAxisIndex

0/1, 默认为0 (主坐标轴)

yAxisIndex

0/1, 默认为0 (主坐标轴)

symbol

参见setSymbols

symbolSize

数值或JS函数

symbolRotate

-180 ~ 180

showAllSymbol

TRUE/FALSE, 默认为FALSE

smooth

TRUE/FALSE, 默认为FALSE

dataFilter

仅用于线图/面积图, ‘nearest’/‘min’/‘max’/‘average’, 默认’nearest’.

legendHoverLink

TRUE/FALSE, 默认为TRUE

2.2.2 条图Bar/柱图Column/直方图Histogram

属性 解释

stack

TRUE/FALSE

xAxisIndex

0/1, 默认为0 (主坐标轴)

yAxisIndex

0/1, 默认为0 (主坐标轴)

barGap

百分比或数值, 默认为’30%’

barCategoryGap

百分比或数值, 默认为’20%’

barMinHeight

数值型,默认为0.

barWidth

数值型,默认为自动

barMaxWidth

数值型,默认为自动

legendHoverLink

TRUE/FALSE, 默认为TRUE

2.2.3 散点图Scatter/气泡图Bubble

属性 解释

xAxisIndex

0/1, 默认为0 (主坐标轴)

yAxisIndex

0/1, 默认为0 (主坐标轴)

symbol

参见setSymbols

symbolSize

数值或JS函数

symbolRotate

-180 ~ 180

large

TRUE/FALSE, 默认为FALSE.

largeThreshold

数值型,默认为2000.

legendHoverLink

TRUE/FALSE, 默认为TRUE.

2.2.4 饼图Pie/环图Ring/玫瑰图Rose

属性 解释

legendHoverLink

TRUE/FALSE, 默认为TRUE.

center

百分比或数值, 默认为c(‘50%’, ‘50%’)

radius

百分比或数值, 默认为c(0, ‘75%’)

startAngle

数值, -360 ~ 360, 饼图默认为90

minAngle

数值型,默认为0.

clockWise

TRUE/FALSE, 默认为TRUE.

roseType

‘radius’/‘area’.

selectedOffset

数值型,默认为10.

selectedMode

NULL/‘single’/‘multiple’, 默认为NULL.

2.2.5 雷达图Radar

属性 解释

symbol

参见setSymbols

symbolSize

数值或JS函数

symbolRotate

竖直,-180 ~ 180

legendHoverLink

TRUE/FALSE, 默认为TRUE.

polarIndex

数值,防止某数据系列的极坐标索引值.

2.2.6 和弦图Chord

属性 解释

symbol

参见setSymbols

symbolSize

数值或JS函数

clockWise

TRUE/FASLE, 默认为FALSE.

categories

数值型向量

links

联结列表

matrix

矩阵数据

minRadius

数值型,默认为10.

maxRadius

数值型,默认为20.

ribbonType

TRUE/FALSE, 默认为TRUE.

showScale

TRUE/FALSE, 默认为FALSE.

showScaleText

TRUE/FALSE, 默认为FALSE

padding

数值型,默认为2.

sort

‘none’/‘ascending’/‘descending’, 默认为’none’.

sortSub

‘none’/‘ascending’/‘descending’, 默认为’none’.

nodes

节点列表

2.2.7 力导向布局图Force

属性 解释

symbol

参见setSymbols

symbolSize

数值或JS函数

large

TRUE/FALSE, 默认为FALSE.

center

百分数或数值,默认为c(‘50%’, ‘50%’).

roam

TRUE/FALSE/‘scale’/‘move’, 默认为FALSE.

categories

文本型向量

links

联结列表

matrix

数据矩阵

size

百分比或数值,默认为’100%’

minRadius

数值型,默认为10.

maxRadius

数值型,默认为20.

linkSymbol

图标名向量, 默认为c(‘none’, ‘arrow’)

linkSymbolSize

数值型向量,默认为c(10, 15)

scaling

数值型,默认为1

gravity

数值型,默认为1

draggable

TRUE/FALSE, 默认为TRUE

useWorker

TRUE/FALSE, 默认为FALSE

steps

数值型,默认为1

nodes

联结列表

2.2.8 地图Map

属性 解释

selectedMode

NULL/‘single’/‘multiple’, 默认为NULL

mapType

‘china’/‘world’, 默认为’china’

hoverable

TRUE/FALSE, 默认为TRUE

dataRangeHoverLink

TRUE/FALSE, 默认为TRUE

mapLocation

list(x=.., y=.., width=.., height=..), 默认为list(x='center', y='center')

mapValueCalculation

‘sum’/‘average’, 默认为’sum’

mapValuePrecision

整型,默认为0

showLegendSymbol

TRUE/FALSE, 默认为TRUE

roam

TRUE/FALSE/‘scale’/‘move’, 默认为FALSE

scaleLimit

数值型,list(max=.., min=..), 默认为NULL

nameMap

参见addNameMap

textFixed

列表, 比如list(China=c(10, -10)), 默认为NULL

geoCoord

参见addGeoCoord

heatmap

参见addHeatMap

2.2.9 仪表盘Gauge

属性 解释

legendHoverLink

TRUE/FALSE, 默认为TRUE.

center

百分比或数值,默认为c(‘50%’, ‘50%’)

radius

百分比或数值,默认为c(0, ‘75%’)

startAngle

数值型 -360 ~ 360, 默认为225

endAngle

数值型 -360 ~ 360, 默认为 -45

min

数值型,默认为0

max

数值型,默认为 100

splitNumber

数值型,默认为10

axisLine

列表, 默认为list( show=TRUE, lineStyle=list(color``=list(list(0.2, '#228b22'), list(0.8, '#48b'), list(1, '#ff4500')), width=30))

axisTick

列表,默认为list( show=TRUE, splitNumber=5, length=8, lineStyle=list( color='#eee', width=1, type='solid'))

axisLabel

列表,默认为 list(show=TRUE, formatter=NULL, textStyle=list(color='auto'))

splitLine

列表,默认为 list(show=TRUE, length=30, lineStyle=list( color='#eee', width=2, type='solid'))

pointer

列表,默认为 list(length='80%', width=8, color='auto')

title

列表,默认为 list(show=TRUE, offsetCenter=list(0, '40%'), textStyle=list(color='#333', fontSize=15))

detail

列表,默认为 list(show=TRUE, backgroundColor='rgba(0,0,0,0)', borderWidth=0, borderColor='#ccc', width=100, height=40, offsetCenter=list(0, '40%'), formatter=NULL, textStyle=list(color='auto', fontSize=30))

2.2.10 漏斗图Funnel

属性 解释

legendHoverLink

TRUE/FALSE, 默认为TRUE.

sort

‘ascending’|‘descending’, 默认为’descending’

min

数值型,默认为0

max

数值型,默认为100

x

数值型,默认为80

y

数值型,默认为60

x2

数值型,默认为 80

y2

数值型,默认为60

width

百分比或数值,默认为 NULL

height

百分比或数值,默认为 NULL

funnelAlign

‘left’/‘right’/‘center’, 默认为’center’

minSize

百分比,默认为 ‘0%’

maxSize

百分比,默认为 ‘100%’

gap

数值型,默认 0

2.2.11 事件河流图eventRiver

属性 解释

xAxisIndex

0/1, 默认为0 (主坐标轴)

legendHoverLink

TRUE/FALSE, 默认为TRUE.

weight

数值型,默认为1

2.2.12 矩形树图Treemap

属性 解释

center

百分比或数值,默认为 c(‘50%’, ‘50%’)

size

百分比或数值,默认为 c(‘80%’, ‘80%’)

root

当前显示的根节点名称

2.2.13 树图Tree

属性 解释

symbol

参见setSymbols

symbolSize

数值型或JS函数

roam

TRUE/FALSE/‘scale’/‘move’, 默认为FALSE

rootLocation

列表, 可以是 list(x='center' / 'left' / 'right' / 'x%' / number, y='center' / 'top' / 'bottom' / 'y%' / number)

layerPadding

数值型,默认为100

nodePadding

数值型,默认为30

orient

‘vertical’/‘horizontal’/‘radial’, 默认为’vertical’

direction

“” 或 “inverse”, 默认为“”

2.2.14 词云wordCloud

属性 解释

center

百分比或数值,默认为 c(‘50%’, ‘50%’)

size

百分比或数值,默认为 c(‘80%’, ‘80%’)

textRotation

向量, -90 ~ 90, 默认为c(0, 90)

autoSize

列表,默认为list(enable=TRUE, minSize=12)

2.2.15 热力图Heatmap

属性 解释

blurSize

数值型,默认为30

gradientColors

list(offset=.., color=..)或颜色向量. 默认为 list('blue', 'cyan', 'limegreen', 'yellow', 'red')

minAlpha

数值型,默认为0.05

valueScale

数值型,默认1

opacity

数值型,默认1

3 举例Showcase

3.1 数据准备Data Preparation

airquality数据集产生4个Echarts对象g1 - g4:

时间轴 单个系列 多个系列
no g1 g2
yes g3 g4
require(data.table)
## Loading required package: data.table
aq <- airquality
aq$Date <- as.Date(paste('1973', aq$Month, aq$Day, sep='-'))
g1 <- echartr(aq, Date, Temp, type='curve') %>% setToolbox(pos=3)
g2 <- echartr(aq, Day, Temp, Month, type='curve') %>% setToolbox(pos=3)
g3 <- echartr(aq, Day, Temp, t=Month, type='curve') %>% setToolbox(pos=3)
aq1 <- melt(aq, id=c('Month', 'Day'), measure=c('Temp', 'Wind'), 
            variable='Param')
g4 <- echartr(aq1, Day, value, Param, t=Month, type='curve') %>% 
    setToolbox(pos=3)

3.2 修饰Modification

setSeries能修改series部件中的任何元素。

你可以先修改图类型,然后调整图形参数。

g1 %>% setSeries(type='bar') %>% setSeries(barWidth=0.5)

也可以把修改局限在某几个数据系列中…

g2 %>% setSeries(series='5', itemStyle=list(normal=itemStyle(
    lineStyle=lineStyle(shadowBlur=10, shadowColor='yellow')))

或某几个时间轴切片中…

但在时间轴中,属性会自动往后继承,所以你需要在当前切片的下一切片中重置属性,阻断属性继承。

g3 %>% setSeries(timeslots='5', itemStyle=list(normal=itemStyle(
    lineStyle=lineStyle(shadowBlur=10, shadowColor='yellow')))) %>%
    setSeries(timeslots='6', itemStyle=list(normal=itemStyle(
    lineStyle=lineStyle(shadowBlur=0))))

或者某些系列和时间轴切片的组合。

g4 %>% setSeries(series='Temp', timeslots='5', itemStyle=list(normal=itemStyle(
    lineStyle=lineStyle(shadowBlur=10, shadowColor='yellow')))) %>%
    setSeries(timeslots='6', series='Temp', itemStyle=list(normal=itemStyle(
        lineStyle=lineStyle(shadowBlur=0)
    )))