echarts3.6
1.<!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="barMain" style="height:400px"></div> function loadEcharts(){ //初始化 var myChart = echarts.init(document.getElementById('barMain')); //指定图表的配置项和数据 var option = {
title:{},//标题
tooltip:{},//提示框
legend:{},
grid:{},
xAxis : [],//x轴
yAxis : [],//y轴
series : []//数据、echarts类型(曲、柱、饼)
};
myChart.setOption(option,true); //当setOption第二个参数为true时,会阻止数据合并 } }
2.例子
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>ECharts</title> </head>
<body>
<div id="barMain" style="height:400px"></div>
<script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
<script type="text/javascript">
// 路径配置
require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
});
// 使用
require(
[
'echarts',
'echarts/chart/bar',
'echarts/chart/line'
],
drawEcharts
);
function drawEcharts(ec){
loadEachatrs(ec);
//drawLine(ec);
}
function loadEachatrs(ec){
var myChart = ec.init(document.getElementById('barMain'));
var option = {
title : {//标题
text: '产品库存关系图',
subtext: '数据来自瞎编',
x: 'center',
align: 'right'
}, tooltip:{//鼠标悬浮在柱状图/曲线图上是否加载提示框
show: true
},
legend:{
data:["种类","物品"],
x: 'left',
y:30,
padding:[5,35,5,5]
},
grid:{//控制图形区域与图表容器之间的间隔,就是绘图区与id为barMain的div的占比http://www.mamicode.com/info-detail-1556089.html
"borderWidth":0,
top:100,
containLabel:true
},
xAxis : [
{
type : 'category',
name:"数据",
data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],
axisLabel:{//加这个x轴显示字体是倾斜状的
interval:0,
rotate:-30
} }
],
yAxis : [
{
name: '个数',
type: 'value',
max: 50
}
],
series : [
{
"name":"种类",
"type":"line",//曲线图
"data":[5, 20, 40, 10, 10, 20], },{
"name":"物品",
"type":"bar",//柱状图
"data":[25, 20, 20, 20, 10, 20],
itemStyle:{normal:{label:{show:true,position:'top'}}}
}
]
};
myChart.setOption(option,true); //当setOption第二个参数为true时,会阻止数据合并 }
</script>
</body>
///////////////////////////////////////////////////////////////////////////////////////////////////注释////////////////////////////////////////////////////////////////////////////////////
series 里面name的值要和legend里面data值一样,不然在实现点击legend时,图形不会出现点击消失点击显示的功能
例子三:
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>ECharts</title>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="barMain" style="height:400px"></div>
<div id="lineMain" style="height:400px"></div>
<!-- ECharts单文件引入 -->
<script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
<script type="text/javascript">
// 路径配置
require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
});
// 使用
require(
[
'echarts',
'echarts/chart/bar',
'echarts/chart/line'
],
drawEcharts
); function drawEcharts(ec){
drawBar(ec);
drawLine(ec);
}
function drawBar(ec){
var myBarChart = ec.init(document.getElementById('barMain'));
var option = {
tooltip: {//提示功能
show: true },
legend: {
data:['销量']
},
xAxis : [
{
type : 'category',
data : ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
}
],
yAxis : [
{
type : 'value'
}
],
series : [
{
"name":"销量",
"type":"bar",
"data":[5, 20, 40, 10, 10, 20]
}
]
};
myBarChart.setOption(option,true); //当setOption第二个参数为true时,会阻止数据合并
} function drawLine(ec){
var myLineChart = ec.init(document.getElementById('lineMain'));//创建一个容器
var option2 = {
title : {
text: '未来一周气温变化',
subtext: '纯属虚构'
},
tooltip : {//提示框--->注释后鼠标放置曲线上时无弹窗
trigger: 'axis' },
legend: {
data:['最高气温','最低气温']
},
toolbox: {
show : true,
feature : {
mark : {show: true},
dataView : {show: true, readOnly: false},
magicType : {show: true, type: ['line', 'bar']},
restore : {show: true},
saveAsImage : {show: true}
}
},
calculable : true,
xAxis : [
{
type : 'category',
boundaryGap : false,
data : ['周一','周二','周三','周四','周五','周六','周日']
}
],
yAxis : [
{
type : 'value',
axisLabel : {
formatter: '{value} °C'
}
}
],
series : [//数据系列,一个图表可能包含多个系列,每一个系列可能包含多个数据
{
name:'最高气温',
type:'line',
data:[11, 11, 15, 13, 12, 13, 10],
markPoint : {//标记提示
data : [
{type : 'max', name: '最大值'},
{type : 'min', name: '最小值'}
]
},
markLine : {//标识线
data : [
{type : 'average', name: '平均值'}
]
}
},
{
name:'最低气温',
type:'line',
data:[1, -2, 2, 5, 3, 2, 0],
markPoint : {
data : [
{name : '周最低', value : -2, xAxis: 1, yAxis: -1.5}
]
},
markLine : {
data : [
{type : 'average', name : '平均值'}
]
}
}
]
};
myLineChart.setOption(option2,true);
}
</script>
</body>
例子四
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>ECharts</title>
</head>
<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="myChart" style="height:500px"></div>
<div id="lineMain" style="height:400px"></div>
<!-- ECharts单文件引入 -->
<script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
<script type="text/javascript">
// 路径配置
require.config({
paths: {
echarts: 'http://echarts.baidu.com/build/dist'
}
});
// 使用
require(
[
'echarts',
'echarts/chart/bar',
'echarts/chart/line'
],
drawEcharts
); function drawEcharts(ec){
InitBarChart(ec);
}
//柱状图
function InitBarChart(ec) {
var mychart = ec.init(document.getElementById("myChart"));
var option = null;
dataList = [
{ "总数":0,
"监测方法":"GPS监测"
},
{ "总数":100,
"监测方法":"地表裂缝监测"
},
{ "总数":100,
"监测方法":"全站仪地表位移监测"
},
{ "总数":100,
"监测方法":"地面沉降监测"
},
{ "总数":100,
"监测方法":"钻孔倾斜仪监测"
},
{ "总数":100,
"监测方法":"全自动倾斜仪监测"
},
{ "总数":100,
"监测方法":"气温"
},
{ "总数":100,
"监测方法":"天气"
},
{ "总数":100,
"监测方法":"雨量监测"
},
{ "总数":100,
"监测方法":"江河水位监测"
},
{ "总数":100,
"监测方法":"地下水位监测"
},
{ "总数":100,
"监测方法":"孔隙水压力监测"
},
{ "总数":100,
"监测方法":"岩土日含水量"
},
{ "总数":100,
"监测方法":"渗透力监测"
},
{ "总数":100,
"监测方法":"渗流量监测"
},
{ "总数":100,
"监测方法":"推力监测"
},
{ "总数":100,
"监测方法":"锚索测力计监测"
},
{ "总数":100,
"监测方法":"井水"
},
{ "总数":100,
"监测方法":"泉水"
},
{ "总数":100,
"监测方法":"墙裂"
},
{ "总数":100,
"监测方法":"地鼓"
},
{ "总数":100,
"监测方法":"次声"
},
{ "总数":100,
"监测方法":"泥位"
} ]; var names = [];
var values = [];
var total = 0;
var barW = 30;
var botM = 60;
var test ="http://echarts.baidu.com/option.html#title.link";
for (var i = 0;i < dataList.length;i++)
{
names.push(dataList[i]["监测方法"]);
values.push(dataList[i]["总数"]);
}
option = {
title: {
// show:false,//不显示标题,如果不想显示可以整个titl不写
text: "我是主标题",//主标题
subtext: "我是副标题",//副标题
link:test,//给主标题加超链接
x: "left",//主副标题在x轴左侧显示
sublink:test,//给副标题加超链接
//target:'self', //主标题超链接当前窗口打开
//target:'blank', //主标题超链接新窗口打开
//subtarget:'self', //副标题超链接当前窗口打开
//subtarget:'blank', //副标题超链接当前窗口打开
textStyle: {//主标题文字样式设置
color: '#1690cf',
fontSize: 14
},
subtextStyle: {//副标题文字样式设置
color: '#1690cf',
fontSize: 12
},
itemGap:10,//主副标题之间间距
padding: [20, 0, 0, 20],//标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距
top:50
},
legend: {//图例组件展现了不同系列的标记(symbol),颜色和名字。可以通过点击图例控制哪些系列不显示
//data:['个数'],//series里面的name,如果有多条曲线可以把不同曲线的name写进去data:['name1','name2']
data: [{
name: '个数',
// 强制设置图形为圆。
icon: 'circle',
// 设置文本为红色
textStyle: {
color: 'red'
},
}],
bottom: 10,
left: 'center'
},
tooltip: {//提示框组件
//trigger: 'item'//数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用
trigger: 'axis',//坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用
}, xAxis: [
{
type: 'category',
data: names,
splitLine: false,
axisLabel: {
//rotate: 45,//旋转角度
interval: 0,//强制显示所有标签
textStyle: {
fontSize: 12,
color: '#333',
fontFamily: "微软雅黑"
},
formatter: function (val) {
return val.split("").join("\n");
}
},
axisLine: {
//show:false
},
axisTick: {
//show:false
}
}
],
yAxis: [
{
type: 'value',
splitLine: true,
show: false
}
],
series: [
{
name: "个数",
type: "bar",
data: values,
barWidth: 20,
itemStyle: {
normal: {
label: {
show: true,
position: 'top',
textStyle: {
color: '#000'
}
},
color:"#7977da"//更改柱子颜色
/*color: function (params) {//给每个柱子设置不同的颜色
var colorList = ['#0bd1da', '#47c588', '#45ade2', '#e87c24', '#0f6fc6', '#7977da', '#fdce0f'];
return colorList[params.dataIndex];
}*/
}
}
}
],
//noDataLoadingOption: {
// text: "暂无数据",
// effect: "bubble",
// effectOption: {
// effect: {
// n:0
// }
// }
//},
grid: {
borderWidth: '0px',
left: 10,
right: 10,
top: 80,
bottom: 80
//x: 0,
//y: 0,
//x2: 0,
//y2:0
//y2:0
//left: '0%',
//right: '10%',
//containLabel:true
},//去掉外围边框
//axis: {
// axisLabel: {
// formatter: function (val) {
// return val.split("").join("\n");
// }
// }
//}
}; mychart.setOption(option);
}
</script>
</body>