基础柱状图的绘制
结合如下期末语文成绩,绘制柱状图:
配置项的内容
var option1 = {
//标题
title:{
text:'语文期末成绩',
left:250
},
// 提示框
tooltip:{},
// 图例
legend:{
data:['语文']
},
// x轴
xAxis:{
data:xdata1
},
// y轴
yAxis:{},
//
series:[{
name:'语文',
type:'bar',
color:'#e66',
data:ydata1
}]
};
柱状图的标记与显示
成果物1,标记出语文成绩的最高值和最低值,并标记出平均值线,成果图如下。
配置项内容
var option2 = {
// 标题
title:{
text:'语文的期末成绩2',
left:200
},
// 提示框
tooltip:{},
// 图例
legend:{
data:['语文']
},
xAxis:{},
// Y轴内容设置为'category'表示类目轴,必须通过data设置类目数据
yAxis:{
type:'category',
data:xdata1
},
series:[{
name:'语文',
type:'bar',
data:ydata1,
// 标记出最大值与最小值
markPoint:{
data:[
{
type:'max',
name:'最大值'
},{
type:'min',
name:'最小值'
}
]
},
// 图中平均线
markLine:{
data:[
{
type:'average',
name:'平均值'
}
]
},
// 让每个柱子的数据显示在柱子上,45度角
label:{
show:true,
rotate:45
},
// 柱子的宽度
barWidth:'50%',
}]
};
通用配置的设置
通用配置指的是其他图形都含有的配置,如标题title、提示框tooltip、工具栏toolbox、图例legend。
请根据配置手册中title的属性,在成果物1的基础上将标题设置为‘成绩展示’,设置字体颜色为‘orange’,尝试更改字体风格等设置,设置合适的边框宽度,颜色和边框圆角半径,调整标题位置,并将echarts配置项手册网址设置为主标题的文本超链接。
请根据配置手册中tooltip的属性,设置鼠标移动到柱子后触发提示,提示该该同学的分数为多少分。
请根据配置手册中toolbox.feature的属性,设置工具栏功能,需要由保存图片,数据视图工具,配置项还原,数据区域缩放,动态类型切换。
配置项内容
var option3 = {
// 标题样式
title:{
text:'成绩展示',
left:200,
textStyle:{
color:'orange',
fontFamily:'Courier New',
fontWeight:'bolder',
fontSize:'20'
},
borderWidth:5,
borderColor:'blue',
borderRadius:15,
link:'https://echarts.apache.org/zh/option.html#series',
target:'blank'
},
// 提示框
tooltip:{
// 触发器,鼠标移到柱子才显示信息
trigger:'item',
triggerOn:'mousemove',
// 提示框中的内容
formatter:function(arg){
// console.log(arg);
return arg.name+'的'+arg.seriesName+'是'+arg.data
}
},
// 工具栏
toolbox:{
// feature属性设置工具栏功能
feature:{
// 保存图片
saveAsImage:{
type:'png',
title:'保存图片'
},
// 数据视图工具
dataView:{
title:'预览可修改'
},
// 配置项还原
restore:{
show:true,
title:'重置'
},
// 数据区域缩放
dataZoom:{
show:true,
// 框选某个区域进行放大
brushStyle:{
color:'grey',
},
title:{
// 缩放前
zoom:'区域缩放',
// 缩放后
back:'区域缩放还原'
}
},
// 动态类型切换
magicType:{
// 切换到类型为柱状图和折线图
type:['bar','line'],
title:{
line:'转换为折线图',
bar:'转换为柱状图'
}
}
},
// 工具栏位置
right:100
},
// 图例
legend:{
data:['语文','数学']
},
// x轴数据设置为类目轴
xAxis:{
type:'category',
data:xdata1
},
yAxis:{},
// 传入两组数据
series:[{
name:'语文',
type:'bar',
data:ydata1,
},{
name:'数学',
type:'bar',
data:ydata2
}]
};
折线图的尝试
配置项内容
var option5 = {
title:{
text:'巧面馆的销量',
left:150
},
// 图例
legend:{
data:['巧面馆的销量']
},
// 提示框
tooltip:{
trigger:'item',
triggerOn:'mousemove',
formatter:function(arg){
// console.log(arg)
return arg.name+'的销量是'+arg.value
}
},
// 工具栏
toolbox:{
right:100,
feature:{
saveAsImage:{
type:'png'
},
dataView:{},
restore:{},
dataZoom:{},
magicType:{
type:['bar','line']
}
}
},
xAxis:{
type:'category',
data:xdata2
},
yAxis:{},
series:[{
name:'巧面馆的销量',
type:'line',
data:ydata4
}]
};
堆叠折线图,并实现工具栏
配置项内容
var option4 = {
// 标题
title:{
text:'康师傅的销量',
left:100
},
// 提示框
tooltip:{
show:true,
trigger:'item',
// formatter:function(arg){
// console.log(arg)
// }
},
// 工具栏
toolbox:{
right:100,
feature:{
// 保存图片
saveAsImage:{
type:'png'
},
// 数据视图
dataView:{},
// 重置
restore:{},
// 缩放
dataZoom:{},
// 类型转换
magicType:{
type:['bar','line']
}
}
},
xAxis:{
// X轴为类目轴
type:'category',
data:xdata2,
boundaryGap:false
},
yAxis:{
scale:true
},
// 图例
legend:{
data:'销售量'
},
series:[{
name:'康师傅销量',
data:ydata3,
type:'line',
color:'red',
smooth:true,
lineStyle:{
color:'green',
type:'dotted'
},
areaStyle:{
color:'pink'
},
stack:'all'
},{
name:'巧面馆的销量',
data:ydata4,
type:'line',
stack:'all',
areaStyle:{
color:'yellow'
},
markPoint:{
data:[{
type:'max',
name:'最大值'
},{
type:'min',
name:'最小值'
}]
},
markLine:{
data:[{
type:'average',
name:'巧面馆的平均销售量'
}]
},
markArea:{}
}]
};
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>配置实验课</title>
<!-- 第一步,引入echarts -->
<script src="./echarts.min.js"></script>
</head>
<body>
<!-- 创建容器 -->
<div id="one" style="width: 800px;height: 500px;"></div>
<div id="two" style="width: 800px;height: 500px;"></div>
<div id="three" style="width: 800px;height: 500px;"></div>
<div id="four" style="width: 800px;height: 500px;"></div>
<div id="five" style="width: 800px;height: 500px;"></div>
<script type="text/javascript">
// 获取元素,并初始化
var myChart1 = echarts.init(document.getElementById('one'));
xdata1 = ["张三","李四","王五","闰土","小明","茅台","二妞","大强"];
ydata1 = [88, 92, 63, 77, 94, 80, 72, 86];
// 设置配置项
var option1 = {
//标题
title:{
text:'语文期末成绩',
left:250
},
// 提示框
tooltip:{},
// 图例
legend:{
data:['语文']
},
// x轴
xAxis:{
data:xdata1
},
// y轴
yAxis:{},
//
series:[{
name:'语文',
type:'bar',
color:'#e66',
data:ydata1
}]
};
myChart1.setOption(option1);
// 任务二
var myChart2 = echarts.init(document.getElementById('two'));
var option2 = {
// 标题
title:{
text:'语文的期末成绩2',
left:200
},
// 提示框
tooltip:{},
// 图例
legend:{
data:['语文']
},
xAxis:{},
// Y轴内容设置为'category'表示类目轴,必须通过data设置类目数据
yAxis:{
type:'category',
data:xdata1
},
series:[{
name:'语文',
type:'bar',
data:ydata1,
// 标记出最大值与最小值
markPoint:{
data:[
{
type:'max',
name:'最大值'
},{
type:'min',
name:'最小值'
}
]
},
// 图中平均线
markLine:{
data:[
{
type:'average',
name:'平均值'
}
]
},
// 让每个柱子的数据显示在柱子上,45度角
label:{
show:true,
rotate:45
},
// 柱子的宽度
barWidth:'50%',
}]
};
myChart2.setOption(option2);
// 任务三
var myChart3 = echarts.init(document.getElementById('three'));
ydata2 = [96, 52, 72, 25, 85, 58, 83, 73];
var option3 = {
// 标题样式
title:{
text:'成绩展示',
left:200,
textStyle:{
color:'orange',
fontFamily:'Courier New',
fontWeight:'bolder',
fontSize:'20'
},
borderWidth:5,
borderColor:'blue',
borderRadius:15,
link:'https://echarts.apache.org/zh/option.html#series',
target:'blank'
},
// 提示框
tooltip:{
// 触发器,鼠标移到柱子才显示信息
trigger:'item',
triggerOn:'mousemove',
// 提示框中的内容
formatter:function(arg){
// console.log(arg);
return arg.name+'的'+arg.seriesName+'是'+arg.data
}
},
// 工具栏
toolbox:{
// feature属性设置工具栏功能
feature:{
// 保存图片
saveAsImage:{
type:'png',
title:'保存图片'
},
// 数据视图工具
dataView:{
title:'预览可修改'
},
// 配置项还原
restore:{
show:true,
title:'重置'
},
// 数据区域缩放
dataZoom:{
show:true,
// 框选某个区域进行放大
brushStyle:{
color:'grey',
},
title:{
// 缩放前
zoom:'区域缩放',
// 缩放后
back:'区域缩放还原'
}
},
// 动态类型切换
magicType:{
// 切换到类型为柱状图和折线图
type:['bar','line'],
title:{
line:'转换为折线图',
bar:'转换为柱状图'
}
}
},
// 工具栏位置
right:100
},
// 图例
legend:{
data:['语文','数学']
},
// x轴数据设置为类目轴
xAxis:{
type:'category',
data:xdata1
},
yAxis:{},
// 传入两组数据
series:[{
name:'语文',
type:'bar',
data:ydata1,
},{
name:'数学',
type:'bar',
data:ydata2
}]
};
myChart3.setOption(option3);
// 任务四
var myChart4 = echarts.init(document.getElementById('four'));
xdata2 = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"];
ydata3 = [3000, 2800, 900, 1000, 800, 700, 1400, 1300, 900, 1000, 800, 600];
ydata4 = [3300, 2000, 1000, 1040, 900, 600, 1300, 1500, 1200, 1300, 1000, 800];
var option4 = {
// 标题
title:{
text:'康师傅的销量',
left:100
},
// 提示框
tooltip:{
show:true,
trigger:'item',
// formatter:function(arg){
// console.log(arg)
// }
},
// 工具栏
toolbox:{
right:100,
feature:{
// 保存图片
saveAsImage:{
type:'png'
},
// 数据视图
dataView:{},
// 重置
restore:{},
// 缩放
dataZoom:{},
// 类型转换
magicType:{
type:['bar','line']
}
}
},
xAxis:{
// X轴为类目轴
type:'category',
data:xdata2,
boundaryGap:false
},
yAxis:{
scale:true
},
// 图例
legend:{
data:'销售量'
},
series:[{
name:'康师傅销量',
data:ydata3,
type:'line',
color:'red',
smooth:true,
lineStyle:{
color:'green',
type:'dotted'
},
areaStyle:{
color:'pink'
},
stack:'all'
},{
name:'巧面馆的销量',
data:ydata4,
type:'line',
stack:'all',
areaStyle:{
color:'yellow'
},
markPoint:{
data:[{
type:'max',
name:'最大值'
},{
type:'min',
name:'最小值'
}]
},
markLine:{
data:[{
type:'average',
name:'巧面馆的平均销售量'
}]
},
markArea:{}
}]
};
myChart4.setOption(option4);
// 任务五
var myChart5 = echarts.init(document.getElementById('five'));
var option5 = {
title:{
text:'巧面馆的销量',
left:150
},
// 图例
legend:{
data:['巧面馆的销量']
},
// 提示框
tooltip:{
trigger:'item',
triggerOn:'mousemove',
formatter:function(arg){
// console.log(arg)
return arg.name+'的销量是'+arg.value
}
},
// 工具栏
toolbox:{
right:100,
feature:{
saveAsImage:{
type:'png'
},
dataView:{},
restore:{},
dataZoom:{},
magicType:{
type:['bar','line']
}
}
},
xAxis:{
type:'category',
data:xdata2
},
yAxis:{},
series:[{
name:'巧面馆的销量',
type:'line',
data:ydata4
}]
};
myChart5.setOption(option5)
</script>
</body>
</html>