一.实训作业
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!--引入ECharts脚本-->
<script src="js/echarts.js"></script>
</head>
<body>
<!---为ECharts准备一个具备大小(宽高)的DOM-->
<div id="main" style="width: 800px; height: 400px"></div>
<script type="text/javascript">
//基于准备好的DOM,初始化ECharts图表
var myChart = echarts.init(document.getElementById("main"));
//指定图表的配置项和数据
var colors = ['#5793f3', '#d14a61', '#675bba'];
option = {
title: {
text: '混合图',
},
color: colors,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
grid: {
right: '20%'
},
toolbox: {
feature: {
dataView: {show: true, readOnly: false},
restore: {show: true},
saveAsImage: {show: true}
}
},
legend: {
data: ['蒸发量', '降水量', '平均温度']
},
xAxis: [
{
type: 'category',
axisTick: {
alignWithLabel: true
},
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
}
],
yAxis: [
{
type: 'value',
name: '蒸发量',
min: 0,
max: 250,
position: 'right',
axisLine: {
lineStyle: {
color: colors[0]
}
},
axisLabel: {
formatter: '{value} ml'
}
},
{
type: 'value',
name: '降水量',
min: 0,
max: 250,
position: 'right',
offset: 80,
axisLine: {
lineStyle: {
color: colors[1]
}
},
axisLabel: {
formatter: '{value} ml'
}
},
{
type: 'value',
name: '温度',
min: 0,
max: 25,
position: 'left',
axisLine: {
lineStyle: {
color: colors[2]
}
},
axisLabel: {
formatter: '{value} °C'
}
}
],
series: [
{
name: '蒸发量',
type: 'bar',
data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
},
{
name: '降水量',
type: 'bar',
yAxisIndex: 1,
data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
},
{
name: '平均温度',
type: 'line',
yAxisIndex: 2,
data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
}
]
};
//使用刚指定的配置项和数据显示图表
myChart.setOption(option);
</script>
</body>
</html>
效果图如下:
二. 多表联动
echarts.connect 是 ECharts 提供的方法之一,用于将多个图表实例连接在一起,实现它们的联动效果。通过连接,一个图表的操作(如缩放、平移)会影响到其他连接的图表,从而在多个图表之间保持一致性的视图状态。
具体而言,echarts.connect 接受一个数组参数,数组中包含要连接的 ECharts 实例。连接之后,这些图表实例就会共享同一个 group,从而共享视图状态。例如,如果您对一个图表进行了缩放,其他连接的图表也会相应地进行缩放。
这种联动效果对于同时展示多个相关的图表或图表中的不同视图非常有用,使用户能够更方便地分析和比较数据。
添加水印
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!--引入ECharts脚本-->
<script src="js/echarts.js"></script>
</head>
<body>
<!---为ECharts准备一个具备大小(宽高)的DOM-->
<div id="main1" style="width: 800px; height: 350px"></div>
<div id="main2" style="width: 800px; height: 350px"></div>
<script type="text/javascript">
//基于准备好的DOM,初始化ECharts图表
var myChart1 = echarts.init(document.getElementById("main1"));
//指定图表的配置项和数据
var myChart1=echarts.init(document.getElementById("main1"));
var waterMarkText = '蜡笔小新'; // 设置水印的字符
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
canvas.width = canvas.height = 100;
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
ctx.globalAlpha = 0.08;
ctx.font = '30px Microsoft Yahei'; // 设置水印文字的字体
ctx.translate(50, 50); // 设置水印文字的偏转值
ctx.rotate(-Math.PI / 4); // 设置水印旋转的角度
ctx.fillText(waterMarkText, 0, 0); // 设置填充水印
var option1 = {
backgroundColor:{type:'patten',image:canvas,repeat:'repeat'},
title: {
text: '王者荣耀英雄数值',
},
legend: {
data: ['生命','物理', '法强','物抗','法抗','移速'],
type:'scroll',
width:'20%'
},
//鼠标移动到指定位置显示数据
tooltip: {
confine:true,
enterable:true,
},
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,
radar:{
indicator:[
{name:'法力值',max:370},
{name:'物理',max:370},
{name:'法强',max:370},
{name:'物抗',max:370},
{name:'法抗',max:370},
{name:'移速',max:370},
],
},
series: [
{
center:['10%,55%'],
name:'radarpanel',
type:'radar',
//鼠标移动到指定位置显该组数据高亮显示
itemStyle:{
normal:{lineStyle:{width:1},opacity:0.2},
emphasis:{lineStyle:{width:5},opacity:1}
},
data:[
{
name:'诸葛亮',
value:[120,170,166,85,50,370],
label:{
show:true
}
},
{
name:'吕布',
value:[150,166,80,95,50,380],
label:{
show:true
}
},
{
name:'李元芳',
value:[50,150,100,101,50,390],
label:{
show:true
}
},
]
}
]
};
//使用刚指定的配置项和数据显示图表
myChart1.setOption(option1);
var myChart2 = echarts.init(document.getElementById("main2"));
var option2 = {
backgroundColor:{type:'patten',image:canvas,repeat:'repeat'},
legend: {
data: ['生命','物理', '法强','物抗','法抗','出场率'],
type:'scroll',
width:'25%'
},
//鼠标移动到指定位置显示数据
tooltip: {
confine:true,
enterable:true,
},
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',
data: ['生命','物理', '法强','物抗','法抗','移速']
},
],
yAxis: [{
type: 'value'
},
],
series: [
{
name:'诸葛亮',
type:'bar',
data: [120,170,166,85,50,370]
},
{
name:'吕布',
type:'bar',
data:[150,166,80,95,50,380]
},
{
name:'李元芳',
type:'bar',
data: [70,150,100,101,50,390]
},
]
}
myChart2.setOption(option2);
// myChart1.group='group1';
// myChart2.group='group2';
// echarts.connect('group1');
echarts.connect([myChart1,myChart2]);
</script>
</body>
</html>
效果图如下: