# 图表
# 起步
# 声明:
- 这些图表依赖于ECharts
- 理论上支持ECharts的所有图表
- 此组件库的目的在于快速提供常见的图表,免于从零开始的各种配置麻烦
- 支持自定义,请参照自定义图表
- 为了更好的性能,这些组件默认使用
svg
渲染
# 使用:
1. 如果还没有下载haru-ui
, 请使用以下语句安装:
npm install haru-ui --save
注意
- 使用这些图表组件需要依赖ECharts
- 而且
<ha-scatter-reg>
还需要额外依赖echarts-stat
2. 引入:
- 引入全部图表
import HaCharts from 'haru-ui/dist/ha-charts'
Vue.use(HaCharts) // 注册所有图表,所有图表已经实现异步加载
- 按需引入单个图表
警告
- 单组件引入时引用的是源码, 故在打包时需要支持
vue
和sass
,以及vue
的jsx
语法的编译 - 本组件库使用
webpack
打包编译
// 图表组件名如下表所示
import 图表组件名(PascalCase) from 'haru-ui/lib/charts/图表组件名(kebab-case)'
Vue.use(图表组件名(PascalCase))
- 可选图表组件名:
图表组件名 | 图表组件名 | 图表组件名 |
---|---|---|
HaLineCate | HaLineTime | HaBarCate |
HaPie | HaScatterReg | HaCustomChart |
3. 使用:
<使用容器包裹,例如ha-rectangle>
<ha-line-cate 传入prop></ha-line-cate>
</ha-rectangle>
注意:
所有图表组件的默认宽高都为100%
,使用时请包裹一个具有实际宽高的容器
# <ha-line-cate>
简介:
简单的类目折线图
props:
title
- 图表名称
- 类型为
String
- 默认值为
'category-line-chart'
theme
- 图表的主题
- 类型为
String
- 默认为
'shine'
- 使用主题, 参加使用主题
xAxis
- x轴的标签
- 类型为
Object
- 此对象的默认值及示例如下:
{ name: 'xName', data: ['x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7'] }
yAxis
- y轴的名字
- 类型为
String
- 默认为
'yName'
- y轴在此组件中被设置为数值轴, 不提供修改prop,如有需要, 请参见自定义图表
pType
- 鼠标放置时的样式
- 类型为
String
- 默认值为
'line'
- 可选值有:
'line'
,'cross'
,'shadow'
,'none'
smooth
- 设置折线是否平滑
- 类型为
Boolean
- 默认为
false
series
- 所要展示的折线数组
- 类型为
Array
- 这个数组的
length
表示折线的数量 - 这个数组的每个成员为一个对象
- 此对象表示每条折线
- 此对象的示例如下:
{ name: 'legend1', //折线的name data: [120, 132, 101, 134, 90, 230, 210] //折线的数据 },
- 该数组默认值为:
[ { name: 'legend1', data: [120, 132, 101, 134, 90, 230, 210] }, { name: 'legend2', data: [220, 182, 191, 234, 290, 330, 310] }, { name: 'legend3', data: [150, 232, 201, 154, 190, 330, 410] } ]
setChart
- 用来设置图表实例的函数
- 类型为
Function
- 此函数有一个参数,表示此图表的实例对象
- 该实例对象参见EChart:echartsInstance
- 默认值为:
function(Chart) { // 参数 Chart 为此图表的实例对象 return false }
实例:
代码:
<ha-line-cate></ha-line-cate>
结果:
# <ha-line-time>
简介:
简单的时间折线图
props:
title
- 图表名称
- 类型为
String
- 默认值为
'time-line-chart'
theme
- 图表的主题
- 类型为
String
- 默认为
'shine'
- 使用主题, 参加使用主题
yAxis
- y轴的名字
- 类型为
String
- 默认为
'yName'
- y轴在此组件中被设置为数值轴, 不提供修改prop,如有需要, 请参见自定义图表
pType
- 鼠标放置时的样式
- 类型为
String
- 默认值为
'cross'
- 可选值有:
'line'
,'cross'
,'shadow'
,'none'
smooth
- 设置折线是否平滑
- 类型为
Boolean
- 默认为
false
series
- 所要展示的折线数组
- 类型为
Array
- 这个数组的
length
表示折线的数量 - 这个数组的每个成员为一个对象
- 此对象表示每条折线
- 此对象的示例如下:
{ name: 'legend1', // 必需,折线的legend data: [ //必需,折线的数据 { name: new Date().toString() // 可选, 每个数据的名字 value: [ [ now.getFullYear(), now.getMonth(), now.getDate() ].join('/'), // 必需,1998/08/31等等时间格式的字符串,用来表示x轴的位置 1000 // 必需,y轴的数值 ] } ] },
setChart
- 用来设置图表实例的函数
- 类型为
Function
- 此函数有一个参数,表示此图表的实例对象
- 该实例对象参见EChart:echartsInstance
- 默认值为:
function(Chart) { // 参数 Chart 为此图表的实例对象 return false }
实例:
代码:
<ha-line-time></ha-line-time>
结果:
# <ha-bar-cate>
简介:
简单的类目柱状图
props:
title
- 图表名称
- 类型为
String
- 默认值为
'category-bar-chart'
theme
- 图表的主题
- 类型为
String
- 默认为
'shine'
- 使用主题, 参加使用主题
xAxis
- x轴的标签
- 类型为
Object
- 此对象的默认值及示例如下:
{ name: 'xName', data: ['x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7'] }
yAxis
- y轴的名字
- 类型为
String
- 默认为
'yName'
- y轴在此组件中被设置为数值轴, 不提供修改prop,如有需要, 请参见自定义图表
pType
- 鼠标放置时的样式
- 类型为
String
- 默认值为
'shadow'
- 可选值有:
'line'
,'cross'
,'shadow'
,'none'
hor
- 设置是否横向显示,即x轴和y轴交换
- 类型为
Boolean
- 默认值为
false
series
- 所要展示的折线数组
- 类型为
Array
- 这个数组的
length
表示折线的数量 - 这个数组的每个成员为一个对象
- 此对象表示每条折线
- 此对象的示例如下:
{ name: 'legend1', //折线的name data: [120, 132, 101, 134, 90, 230, 210] //折线的数据 }
- 该数组默认值为:
[ { name: 'legend1', data: [120, 132, 101, 134, 90, 230, 210] }, { name: 'legend2', data: [220, 182, 191, 234, 290, 330, 310] }, { name: 'legend3', data: [150, 232, 201, 154, 190, 330, 410] } ]
setChart
- 用来设置图表实例的函数
- 类型为
Function
- 此函数有一个参数,表示此图表的实例对象
- 该实例对象参见EChart:echartsInstance
- 默认值为:
function(Chart) { // 参数 Chart 为此图表的实例对象 return false }
实例:
代码:
<ha-bar-cate :hor="true"></ha-bar-cate>
结果:
# <ha-pie>
简介:
简单的饼图
props:
title
- 图表名称
- 类型为
String
- 默认值为
'pie-chart'
theme
- 图表的主题
- 类型为
String
- 默认为
'shine'
- 使用主题, 参加使用主题
roseType
- 设置是否为南丁格尔图(玫瑰图)
- 类型为
String
- 默认值为
undefined
- 可选值为
'radius'
或者'area'
- 当值为
'radius'
时, 同时使用角度和半径长度(即面积)表示每项大小 - 当值为
'area'
时, 使用半径长度(即面积)表示每项大小
itemColor
- 设置每个项目的颜色
- 类型为
String
- 值为表示颜色的字符串(常见的颜色名词和16进制的颜色值)
- 默认为
undefined
series
- 所要展示的数据对象
- 类型为
Object
- 此对象的示例及默认值如下:
{ name: 'legend1', data: [ {value: 335, name: 'name1'}, {value: 110, name: 'name2'}, {value: 203, name: 'name3'}, {value: 275, name: 'name4'}, {value: 400, name: 'name5'} ].sort(function (a, b) { return (a.value - b.value) }) }
setChart
- 用来设置图表实例的函数
- 类型为
Function
- 此函数有一个参数,表示此图表的实例对象
- 该实例对象参见EChart:echartsInstance
- 默认值为:
function(Chart) { // 参数 Chart 为此图表的实例对象 return false }
实例:
代码:
<ha-pie theme="dark" roseType="radius" itemColor="red"></ha-pie>
结果:
# <ha-scatter-reg>
简介:
简单的饼图
props:
title
- 图表名称
- 类型为
String
- 默认值为
'scatter-reg-chart'
theme
- 图表的主题
- 类型为
String
- 默认为
'shine'
- 使用主题, 参加使用主题
regMethod
- 设置回归方法
- 类型为
String
- 默认值为
'polynomial'
- 可选值为
'linear'
,'polynomial'
,'logarithmic'
,'exponential'
order
- 设置多项式的阶数
- 只有在名为
regMethod
的prop设置为'polynomial'
才有效 - 类型为
Number
- 默认为
1
series
- 所要展示的数据对象
- 类型为
Object
- 此对象的示例及默认值如下:
{ name: 'legend1', data: [ [10.0, 8.04], [8.0, 6.95], [13.0, 7.58], [9.0, 8.81], [11.0, 8.33], [14.0, 9.96], [6.0, 7.24], [4.0, 4.26], [12.0, 10.84], [7.0, 4.82], [5.0, 5.68] ] }
setChart
- 用来设置图表实例的函数
- 类型为
Function
- 此函数有一个参数,表示此图表的实例对象
- 该实例对象参见EChart:echartsInstance
- 默认值为:
function(Chart) { // 参数 Chart 为此图表的实例对象 return false }
实例:
代码:
<ha-scatter-reg :order="2" regMethod="polynomial"></ha-scatter-reg>
结果:
# 自定义图表
- 请使用以下组件进行自定义
# <ha-custom-chart>
简介:
自定义图表所用组件,理论上支持ECharts的所有图表
props:
theme
- 图表的主题
- 类型为
String
- 默认为
'shine'
- 使用主题, 参加使用主题
option
- 图表的配置项
- 详情参见ECharts:option
setChart
- 用来设置图表实例的函数
- 类型为
Function
- 此函数有一个参数,表示此图表的实例对象
- 该实例对象参见EChart:echartsInstance
- 默认值为:
function(Chart) { // 参数 Chart 为此图表的实例对象 return false }
# 使用主题
提示
默认主题为shine
# 官方主题
官方默认主题已下载内置,使用如下:
- 引入主题文件:
import 'haru-ui/charts/theme/主题名'
提示
主题名dark
不需要引入,官方默认引入
- 在图表组件名为
theme
的prop中传入'主题名':
<ha-line-cate theme="主题名"></ha-line-cate>
提示
主题名shine
不需要设置, 这是默认值
- 可选主题名如下:
主题名 | 主题名 | 主题名 | 主题名 | 主题名 |
---|---|---|---|---|
dark | vintage | macarons | infographic | roma |
# 自定义主题
- 在这里下载自定义主题
- 引入主题文件
- 设置名为
theme
的prop为自定义主题名