首先要下载最新echarts,旧版可能很多功能不支持
1.饼图中心写文字
-
var myChart = echarts.init(document.getElementById(
'row-1-1'));
-
var option = {
-
color:[
"#53647E",
"#05B6F0"],
-
title: {
-
text:
'23.5',
-
textStyle: {
-
fontSize:
18,
-
//fontFamily:'sans-serif',
-
fontStyle:
'normal',
-
color:
'#05B5EE',
-
verticalAlign:
"top"
-
},
-
subtext: [
'系统总体容量\n'],
-
subtextStyle:{
-
fontSize:
10,
-
color:
'#05B5EE'
-
},
-
/*itemGap:'50px',*/
-
x:
'center',
-
y:
'center',
-
top:
'35%'
-
},
-
tooltip: {
-
trigger:
'item',
-
formatter:
"{a} <br/>{b}: {c} ({d}%)"
-
},
-
series: [
-
{
-
//name:'系统容量',
-
type:
'pie',
-
radius: [
'65%',
'80%'],
-
avoidLabelOverlap:
false,
-
label: {
-
normal: {
-
show:
false,
-
position:
'center'
-
},
-
emphasis: {
-
show:
false,
-
textStyle: {
-
fontSize:
'30',
-
fontWeight:
'bold'
-
}
-
}
-
},
-
labelLine: {
-
normal: {
-
show:
false
-
}
-
},
-
data:[
-
{
value:
11, name:
'系统剩余容量'},
-
{
value:
12.5, name:
'系统使用容量'},
-
-
]
-
}
-
]
-
};
-
myChart.setOption(option);
设置title中的text和subtext即可,样式可以自定义
2.关于坐标轴和分割线的设置
-
var myChart = echarts.init(document.getElementById(
'row-2-2'));
-
var option = {
-
color: [
'#60CF54',
'#5EB95E',
'#c23531',
'#61a0a8',
'#d48265',
'#91c7ae',
'#749f83',
'#ca8622',
'#bda29a',
'#6e7074',
'#546570',
'#c4ccd3'],
-
tooltip : {
-
trigger:
'axis',
-
axisPointer : {
// 坐标轴指示器,坐标轴触发有效
-
type :
'shadow'
// 默认为直线,可选为:'line' | 'shadow'
-
}
-
},
-
grid: {
-
top:
'15%',
-
left:
'3%',
-
right:
'4%',
-
bottom:
'5%',
-
containLabel:
true,
-
borderColor:
"#F5F5F5"
-
},
-
xAxis :{
//x坐标
-
type :
'category',
-
data : [],
-
axisTick: {
//刻度
-
show:
false,
//不显示刻度
-
},
-
show:
false,
//横坐标直接不显示
-
},
-
yAxis : [
-
{
-
type :
'value',
-
nameTextStyle: {
-
color:
'#fff'
-
},
-
axisLine:{
//坐标轴轴线
-
show:
false,
//不显示坐标线
-
lineStyle:{
-
color:
'#fff'
-
}
-
},
-
splitNumber:
1,
//左边分割数,1位分割一次
-
axisTick: {
//刻度
-
show:
false,
//不显示刻度
-
},
-
axisLabel:{
//刻度标签
-
color:
"white",
-
show:
true,
-
fontSize:
10
-
},
-
splitLine: {
-
show:
false
//分割线
-
}
-
}
-
],
-
series : [{
-
type:
"bar",
-
barCategoryGap:
'50%',
-
data:[
100,
80,
60,
50,
20,
60,
70,
90,
20,
100,
50]
-
}]
-
};
-
myChart.setOption(option);
主要就是设置xAxis和yAxis中的axisLine,axisLabel,axisTick,splitLine,splitNumber等,具体参数看手册即可
3.关于柱状图改变柱子间隔问题
-
series : [{
-
type:
"bar",
-
barCategoryGap:
'50%',
-
data:[
100,
80,
60,
50,
20,
60,
70,
90,
20,
100,
50]
-
}]
如果只有一组数据,想调整柱子间隔,在series中使用barCategoryGap调整即可
如果有多组数据,则需要使用barGap来调整类目之间的间距
4.关于一组数据改变柱状图颜色问题
-
series : [{
-
type:
"bar",
-
barCategoryGap:
'70%',
-
data:[
100,
80,
60,
50,
20],
-
itemStyle: {
-
normal:{
-
color: function (params){
-
var colorList = [
'#455B72',
'#A5AFB5',
'#D44191',
'#45A5D5',
'#15BCB5'];
-
return colorList[params.dataIndex];
-
}
-
},
-
},
-
markLine : {
-
data : [
-
{
type :
'average', name:
'平均值'}
-
],
-
lineStyle: {
-
color:
'#ddd',
-
width:
1,
-
type:
'dashed',
-
/*shadowBlur: ...,
-
shadowColor: ...,
-
shadowOffsetX: 0,
-
shadowOffsetY: 0,
-
opacity: ...,
-
curveness: 0,*/
-
}
-
}
-
}]
在series中设置itemStyle,像这个设置颜色即可
5.关于折线图不同数值区间颜色不同问题
-
var option = {
-
title: {
-
text:
'ECharts 入门示例'
-
},
-
tooltip: {},
-
legend: {
-
data:[
'销量']
-
},
-
xAxis: {
-
data: [
"衬衫",
"羊毛衫",
"雪纺衫",
"裤子",
"高跟鞋",
"袜子"]
-
},
-
yAxis: {},
-
visualMap: {
//区间内控制显示颜色
-
show:
false,
-
dimension:
1,
-
pieces: [[{gte:
7, lte:
15, color:
'#7547A2'},{gte:
15, lte:
30, color:
'#000'}]],
//设置折线什么区间显示什么颜色
-
seriesIndex:
0,
-
outOfRange: {
//设置区间外的颜色
-
color:
'red'
-
}
-
},
-
series: [{
-
name:
'销量',
-
type:
'line',
-
areaStyle: {normal: {}},
//加上这个使折线下方填充颜色
-
-
data: [
5,
20,
36,
10,
10,
20]
-
}
-
]
-
};
在visualMap中设置pieces,其中可设置最大最小区间内折线的颜色,series中如果设置了areaStyle,则对应的区间内填充颜色也会相应改变,就像图中那样
附visualMap的配置
-
visualMap=[
//视觉映射组件,用于进行『视觉编码』,也就是将数据映射到视觉元素。视觉元素可以是:symbol: 图元的图形类别。symbolSize: 图元的大小。color: 图元的颜色。
-
// colorAlpha: 图元的颜色的透明度。opacity: 图元以及其附属物(如文字标签)的透明度。colorLightness: 颜色的明暗度。colorSaturation: 颜色的饱和度。colorHue: 颜色的色调。
-
{
-
show:
true,
//是否显示 visualMap-continuous 组件。如果设置为 false,不会显示,但是数据映射的功能还存在
-
type:
'continuous',
// 定义为连续型 viusalMap
-
min:
10,
//指定 visualMapContinuous 组件的允许的最小值
-
max:
100,
//指定 visualMapContinuous 组件的允许的最大值
-
range:[
15,
40],
//指定手柄对应数值的位置。range 应在 min max 范围内
-
calculable:
true,
//是否显示拖拽用的手柄(手柄能拖拽调整选中范围)
-
realtime:
true,
//拖拽时,是否实时更新
-
inverse:
false,
//是否反转 visualMap 组件
-
precision:
0,
//数据展示的小数精度,默认为0,无小数点
-
itemWidth:
20,
//图形的宽度,即长条的宽度。
-
itemHeight:
140,
//图形的高度,即长条的高度。
-
align:
"auto",
//指定组件中手柄和文字的摆放位置.可选值为:'auto' 自动决定。'left' 手柄和label在右。'right' 手柄和label在左。'top' 手柄和label在下。'bottom' 手柄和label在上。
-
text:[
'High',
'Low'],
//两端的文本
-
textGap:
10,
//两端文字主体之间的距离,单位为px
-
dimension:
2,
//指定用数据的『哪个维度』,映射到视觉元素上。『数据』即 series.data。 可以把 series.data 理解成一个二维数组,其中每个列是一个维度,默认取 data 中最后一个维度
-
seriesIndex:
1,
//指定取哪个系列的数据,即哪个系列的 series.data,默认取所有系列
-
hoverLink:
true,
//鼠标悬浮到 visualMap 组件上时,鼠标位置对应的数值 在 图表中对应的图形元素,会高亮
-
inRange:{
//定义 在选中范围中 的视觉元素
-
color: [
'#121122',
'rgba(3,4,5,0.4)',
'red'],
-
symbolSize: [
30,
100]
-
},
-
outOfRange:{
//定义 在选中范围外 的视觉元素。
-
color: [
'#121122',
'rgba(3,4,5,0.4)',
'red'],
-
symbolSize: [
30,
100]
-
},
-
zlevel:
0,
//所属图形的Canvas分层,zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面
-
z:
2,
//所属组件的z分层,z值小的图形会被z值大的图形覆盖
-
left:
"center",
//组件离容器左侧的距离,'left', 'center', 'right','20%'
-
top:
"top",
//组件离容器上侧的距离,'top', 'middle', 'bottom','20%'
-
right:
"auto",
//组件离容器右侧的距离,'20%'
-
bottom:
"auto",
//组件离容器下侧的距离,'20%'
-
orient:
"vertical",
//图例排列方向
-
padding:
5,
//图例内边距,单位px 5 [5, 10] [5,10,5,10]
-
backgroundColor:
"transparent",
//标题背景色
-
borderColor:
"#ccc",
//边框颜色
-
borderWidth:
0,
//边框线宽
-
textStyle:mytextStyle,
//文本样式
-
formatter:
function (value) {
//标签的格式化工具。
-
return
'aaaa' + value;
// 范围标签显示内容。
-
}
-
},
-
{
-
show:
true,
//是否显示 visualMap-continuous 组件。如果设置为 false,不会显示,但是数据映射的功能还存在
-
type:
'piecewise',
// 定义为分段型 visualMap
-
splitNumber:
5,
//对于连续型数据,自动平均切分成几段。默认为5段
-
pieces: [
//自定义『分段式视觉映射组件(visualMapPiecewise)』的每一段的范围,以及每一段的文字,以及每一段的特别的样式
-
{
min:
1500},
// 不指定 max,表示 max 为无限大(Infinity)。
-
{
min:
900,
max:
1500},
-
{
min:
310,
max:
1000},
-
{
min:
200,
max:
300},
-
{
min:
10,
max:
200,
label:
'10 到 200(自定义label)'},
-
{
value:
123,
label:
'123(自定义特殊颜色)',
color:
'grey'},
// 表示 value 等于 123 的情况。
-
{
max:
5}
// 不指定 min,表示 min 为无限大(-Infinity)。
-
],
-
categories:[
'严重污染',
'重度污染',
'中度污染',
'轻度污染',
'良',
'优'],
//用于表示离散型数据(或可以称为类别型数据、枚举型数据)的全集
-
min:
10,
//指定 visualMapContinuous 组件的允许的最小值
-
max:
100,
//指定 visualMapContinuous 组件的允许的最大值
-
minOpen:
true,
//界面上会额外多出一个『< min』的选块
-
maxOpen:
true,
//界面上会额外多出一个『> max』的选块。
-
selectedMode:
"multiple",
//选择模式,可以是:'multiple'(多选)。'single'(单选)。
-
inverse:
false,
//是否反转 visualMap 组件
-
precision:
0,
//数据展示的小数精度,默认为0,无小数点
-
itemWidth:
20,
//图形的宽度,即长条的宽度。
-
itemHeight:
140,
//图形的高度,即长条的高度。
-
align:
"auto",
//指定组件中手柄和文字的摆放位置.可选值为:'auto' 自动决定。'left' 手柄和label在右。'right' 手柄和label在左。'top' 手柄和label在下。'bottom' 手柄和label在上。
-
text:[
'High',
'Low'],
//两端的文本
-
textGap:
10,
//两端文字主体之间的距离,单位为px
-
showLabel:
true,
//是否显示每项的文本标签
-
itemGap:
10,
//每两个图元之间的间隔距离,单位为px
-
itemSymbol:
"roundRect",
//默认的图形。可选值为: 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
-
dimension:
2,
//指定用数据的『哪个维度』,映射到视觉元素上。『数据』即 series.data。 可以把 series.data 理解成一个二维数组,其中每个列是一个维度,默认取 data 中最后一个维度
-
seriesIndex:
1,
//指定取哪个系列的数据,即哪个系列的 series.data,默认取所有系列
-
hoverLink:
true,
//鼠标悬浮到 visualMap 组件上时,鼠标位置对应的数值 在 图表中对应的图形元素,会高亮
-
inRange:{
//定义 在选中范围中 的视觉元素
-
color: [
'#121122',
'rgba(3,4,5,0.4)',
'red'],
-
symbolSize: [
30,
100]
-
},
-
outOfRange:{
//定义 在选中范围外 的视觉元素。
-
color: [
'#121122',
'rgba(3,4,5,0.4)',
'red'],
-
symbolSize: [
30,
100]
-
},
-
zlevel:
0,
//所属图形的Canvas分层,zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面
-
z:
2,
//所属组件的z分层,z值小的图形会被z值大的图形覆盖
-
left:
"center",
//组件离容器左侧的距离,'left', 'center', 'right','20%'
-
top:
"top",
//组件离容器上侧的距离,'top', 'middle', 'bottom','20%'
-
right:
"auto",
//组件离容器右侧的距离,'20%'
-
bottom:
"auto",
//组件离容器下侧的距离,'20%'
-
orient:
"vertical",
//图例排列方向
-
padding:
5,
//图例内边距,单位px 5 [5, 10] [5,10,5,10]
-
backgroundColor:
"transparent",
//标题背景色
-
borderColor:
"#ccc",
//边框颜色
-
borderWidth:
0,
//边框线宽
-
textStyle:mytextStyle,
//文本样式
-
formatter:
function (value) {
//标签的格式化工具。
-
return
'aaaa' + value;
// 范围标签显示内容。
-
}
-
}
-
];