类型
饼图分有三种类型:
- 基础饼图
- 圆环图 (设置设置radius:
radius: ['50%', '70%']
,) - 南丁格尔图(玫瑰图,设置
roseType: 'area'
)
举一个简单的例子
<template>
<div class="chart-container">
<div style="width: 100%; height: 400px" ref="chartRef" class="chart"></div>
</div>
</template>
<script>
import { ref, onMounted } from 'vue';
import * as echarts from 'echarts';
export default {
name: 'PieChart',
setup() {
const chartRef = ref(null);
onMounted(() => {
const chart = echarts.init(chartRef.value);
//有一个生肖的数据
const data = [
{ name: '鼠', value: 11 },
{ name: '狗', value: 7 },
{ name: '鸡', value: 15 },
{ name: '猴', value: 9 },
{ name: '羊', value: 6 },
{ name: '马', value: 5 },
{ name: '蛇', value: 9 },
{ name: '龙', value: 8 },
{ name: '兔', value: 5 },
{ name: '虎', value: 12 },
{ name: '牛', value: 12 },
{ name: '猪', value: 3 }
];
const option = {
series: [
{
type: 'pie',
radius: ['50%', '70%'], //设置radius就是圆环图
roseType: 'area', //玫瑰图
label: {
show: true,
position: 'inside',
formatter: '{d}%\n{name}', // 显示百分比和名称
},
data: data,
},
],
};
chart.setOption(option);
});
return {
chartRef,
};
},
};
</script>
效果: 下面我们就以圆环图为例子。
设置显示百分比
要在Echarts的圆环图中显示百分比,你可以通过配置series
的label
属性来实现。以下是一个示例代码:
<script setup>
//省略
const option = {
series: [
{
type: 'pie',
radius: ['20%', '60%'],
// roseType: 'area', //玫瑰图
data: data,
label: {
show: true,
position: 'outside', //位置,内部(inside)和外部(outside)
formatter: '{d}%\n{b}' // 显示百分比和名称
}
}
]
}
</script>
并在图表的配置项中设置了series
的label
属性。我们将label
的show
属性设置为true
,表示要显示标签;将position
属性设置为outside
,表示标签显示在内部;并使用formatter
属性来设置标签的格式,通过{d}
占位符表示百分比,{b}
表示名称。
效果:
设置 tooltip (同折线图)
const option = {
tooltip: {
trigger: 'item', // 触发类型为item,表示在圆点上触发显示
formatter: '{b}: {c}' // 显示的格式,{b}表示类目值,{c}表示数值
},
series: [
{
type: 'pie',
radius: ['20%', '60%'],
// roseType: 'area', //玫瑰图
data: data,
label: {
show: true,
position: 'outside',
formatter: '{d}%\n{b}' // 显示百分比和名称
}
}
]
}
效果:
设置选中状态
要在Echarts的圆环图中选中某个扇形时放大百分比,你可以使用emphasis
属性来设置选中状态的样式。以下是一个示例代码:
<script>
const option = {
tooltip: {
trigger: 'item', // 触发类型为item,表示在圆点上触发显示
formatter: '{b}: {c}' // 显示的格式,{b}表示类目值,{c}表示数值
},
series: [
{
type: 'pie',
radius: ['20%', '60%'],
// roseType: 'area', //玫瑰图
data: data,
label: {
show: true,
position: 'outside',
formatter: '{d}%\n{b}' // 显示百分比和名称
},
emphasis: {
label: {
show: true,
fontSize: '20'
}
}
}
]
}
</script>
在上面的代码中,我们在series
的配置项中设置了emphasis
属性。在emphasis
属性中,我们将label
的show
属性设置为true
,表示选中状态下要显示标签;并设置fontSize
属性为20
,表示选中状态下标签的字体大小放大为20。
通过这种方式,当选中某个扇形时,标签的字体大小会放大为20。
效果:
显示各种颜色代表的值
legend
对象在Echarts中提供了多个属性来自定义图例的样式和行为。以下是一些常用的legend
属性:
show
: 是否显示图例,默认为true
。data
: 图例的数据数组,用于指定图例的名称。selected
: 图例项的选中状态,可以通过设置对应图例项的名称为true
或false
来控制其默认选中状态。textStyle
: 图例文本的样式,可以设置字体颜色、字体大小等。backgroundColor
: 图例的背景颜色。borderColor
: 图例的边框颜色。borderWidth
: 图例的边框宽度。borderRadius
: 图例的边框圆角半径。padding
: 图例的内边距。itemGap
: 图例项之间的间距。itemWidth
: 图例项的宽度。itemHeight
: 图例项的高度。orient
: 图例的布局方向,可以是horizontal
(水平布局)或vertical
(垂直布局)。align
: 图例的水平对齐方式,可以是left
、center
或right
。verticalAlign
: 图例的垂直对齐方式,可以是top
、middle
或bottom
。
你可以根据自己的需求使用这些属性来自定义图例的样式和行为。
要在Echarts的圆环图中显示各种颜色代表的值,你可以使用legend
属性来配置图例,同时在series
的data
中指定每个扇形的名称和值。以下是一个示例代码:
<script>
const option = {
tooltip: {
trigger: 'item', // 触发类型为item,表示在圆点上触发显示
formatter: '{b}: {c}' // 显示的格式,{b}表示类目值,{c}表示数值
},
legend: {
x: 'center', //位置
y: 'bottom', //放在圆环底部
show: true,
padding: 4,
borderRadius: 6,
borderWidth: 1, // 设置边框宽度为1px
borderColor: '#ddd', // 设置边框颜色为黑色
data: data.map((item) => item.name), // 图例数据
formatter: function (name) {
// 自定义图例的显示文本
const item = data.find((item) => item.name === name)
if (item) {
return `${name} ${item.value}`
}
return name
}
},
series: [
{
type: 'pie',
radius: ['20%', '60%'],
// roseType: 'area', //玫瑰图
data: data,
label: {
show: true,
position: 'outside',
formatter: '{d}%\n{b}' // 显示百分比和名称
},
emphasis: {
label: {
show: true,
fontSize: '20'
}
}
}
]
}
</script>
效果:
评论(0)