数据可视化----ECharts—饼图(六)
百度百科——饼图
Echarts系列文章
饼图的基本实现
实现步骤
一. 搭建ECharts最基本的代码结构(这是实现任何一张图表都必须的第一步)
- 引入js文件(这个js文件可以去官网下载下来)
- 准备一个DOM容器
- 初始化一个echarts对象
- 设置配置项option
上面的具体操作可以去看下
二. 准备数据:
- 该组数据最外层是一个数组
- 数组的每一项元素都是一个对象
- 每个对象都包含有name和value这两个属性
- 例如:[{name:'早餐’,value:‘10’},{name:'午餐’,value:‘30’}]
三. 图表类型:
四. 代码实现:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>饼状图的基本实现</title>
<script src="./lib/echarts.min.js"></script>
</head>
<body>
<div id="app" style="width: 600px;height: 400px;"></div>
<script>
var myCharts = echarts.init(document.querySelector('#app'))
var pieData = [
{
name: '运动与健康',
value: '1100'
},
{
name: '餐饮',
value: '2800'
},
{
name: '外出与旅行',
value: '4500'
},
{
name: '衣物',
value: '2202'
},
{
name: '电子游戏',
value: '2421'
},
{
name: '医药',
value: '800'
}
]
var option = {
series: [
{
type: 'pie',
data: pieData
}
]
}
myCharts.setOption(option)
</script>
</body>
</html>
饼状图的基本实现
效果图如下:
饼图的常见效果配置
一. 文字的显示(注意这段配置不是饼图所特有的,在柱状图,折线图,地图等图表中也可以使用),我们只需要在series下添加如下配置:
label: {
show: true,
formatter: function (arg) {
console.log(arg);
return arg.name + ' 消费 ' + arg.value + " 元" +'\n'+ arg.percent + "%"
}
}
在series中添加了这段配置之后,效果图:
有关formatter,在这里做一下补充: formatter:用来格式化图例文本,支持普通字符串、字符串模板和回调函数等形式。 示例:
formatter: 'Legend'
formatter: 'Legend {name}'
formatter: function (name) {
return 'Legend ' + name;
}
二. 半径以及圆环效果:
设置饼图半径,需要在series下加一个配置项radius,他的值可以是
- 准确的数字(单位:px
- 百分比(这里相对的是DOM容器宽高中小的那一个的一半来计算的)
- 数组(设置两个半径就可以实现圆环的效果)
radius: 40
radius: '20%'
圆环效果
radius: ['50%','80%']
效果图: 三. 南丁格尔图:
- 百度百科–南丁格尔玫瑰图:南丁格尔图的主要效果就是我们根据不同的区域相对应的value值的不同,我们的饼图半径展示也会不同
- 想实现南丁格尔图只需要在series下添加这行代码:roseType: ‘radius’
看看效果图:
四. 选中的效果:
selectedMode: 'multiple',
selectedOffset: 30
下面的效果图是将selectedMode设置成multiple的,感兴趣的可以试试single,还可以改一下selectedOffset值,看一看什么效果
效果图:
最后,老规矩,完整的代码奉上
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>饼状图的基本实现</title>
<script src="./lib/echarts.min.js"></script>
</head>
<body>
<div id="app" style="width: 600px;height: 400px;"></div>
<script>
var myCharts = echarts.init(document.querySelector('#app'))
var pieData = [
{
name: '运动与健康',
value: '1100'
},
{
name: '餐饮',
value: '2800'
},
{
name: '外出与旅行',
value: '4500'
},
{
name: '衣物',
value: '2202'
},
{
name: '电子游戏',
value: '2421'
},
{
name: '医药',
value: '800'
}
]
var option = {
series: [
{
type: 'pie',
data: pieData,
label: {
show: true,
formatter: function (arg) {
console.log(arg);
return arg.name + ' 消费 ' + arg.value + " 元" +'\n'+ arg.percent + "%"
}
},
selectedMode: 'multiple',
selectedOffset: 30
}
]
}
myCharts.setOption(option)
</script>
</body>
</html>
|