Vue3+Echarts 常用属性总结之饼图

类型

饼图分有三种类型:

  • 基础饼图

  • 圆环图 (设置设置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的圆环图中显示百分比,你可以通过配置serieslabel属性来实现。以下是一个示例代码:

<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>

并在图表的配置项中设置了serieslabel属性。我们将labelshow属性设置为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属性中,我们将labelshow属性设置为true,表示选中状态下要显示标签;并设置fontSize属性为20,表示选中状态下标签的字体大小放大为20。

通过这种方式,当选中某个扇形时,标签的字体大小会放大为20。

效果:

图片

显示各种颜色代表的值

legend对象在Echarts中提供了多个属性来自定义图例的样式和行为。以下是一些常用的legend属性:

  • show: 是否显示图例,默认为true

  • data: 图例的数据数组,用于指定图例的名称。

  • selected: 图例项的选中状态,可以通过设置对应图例项的名称为truefalse来控制其默认选中状态。

  • textStyle: 图例文本的样式,可以设置字体颜色、字体大小等。

  • backgroundColor: 图例的背景颜色。

  • borderColor: 图例的边框颜色。

  • borderWidth: 图例的边框宽度。

  • borderRadius: 图例的边框圆角半径。

  • padding: 图例的内边距。

  • itemGap: 图例项之间的间距。

  • itemWidth: 图例项的宽度。

  • itemHeight: 图例项的高度。

  • orient: 图例的布局方向,可以是horizontal(水平布局)或vertical(垂直布局)。

  • align: 图例的水平对齐方式,可以是leftcenterright

  • verticalAlign: 图例的垂直对齐方式,可以是topmiddlebottom

你可以根据自己的需求使用这些属性来自定义图例的样式和行为。

要在Echarts的圆环图中显示各种颜色代表的值,你可以使用legend属性来配置图例,同时在seriesdata中指定每个扇形的名称和值。以下是一个示例代码:

<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>

效果:

图片

您好!对于Vue 3和Echarts的立体环形饼图,您可以按照以下步骤进行操作: 1. 首先,您需要在Vue项目中安装Echarts。您可以使用npm或yarn命令来安装它: ```bash npm install echarts ``` 或 ```bash yarn add echarts ``` 2. 在您的Vue组件中,导入Echarts和相应的样式文件: ```javascript import * as echarts from 'echarts'; import 'echarts-gl'; import 'echarts/theme/macarons'; // 可选择其他主题 ``` 3. 在Vue组件的`mounted`生命周期钩子函数中,初始化Echarts实例并配置立体环形饼图的数据和样式: ```javascript mounted() { const chartDom = document.getElementById('chart'); // 假设有一个id为'chart'的DOM元素用于显示图表 const myChart = echarts.init(chartDom, 'macarons'); // 初始化Echarts实例,指定主题 const option = { series: [ { type: 'pie', radius: ['50%', '70%'], // 控制内外半径大小 label: { show: true, position: 'inside', formatter: '{b}: {c}', }, data: [ { value: 335, name: '数据1' }, { value: 310, name: '数据2' }, { value: 234, name: '数据3' }, { value: 135, name: '数据4' }, { value: 1548, name: '数据5' }, ], }, ], }; myChart.setOption(option); // 设置图表配置项 // 可选:在窗口大小变化时重新绘制图表 window.addEventListener('resize', () => { myChart.resize(); }); } ``` 4. 在Vue组件的模板中,添加用于显示图表的DOM元素: ```html <template> <div id="chart" style="width: 100%; height: 400px;"></div> </template> ``` 这样,您就可以在Vue项目中使用Echarts绘制立体环形饼图了。记得在Vue组件销毁时销毁Echarts实例,可以在`beforeDestroy`生命周期钩子函数中调用`myChart.dispose()`。 希望对您有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值