首页 前端知识 echarts 饼图大小、图例位置样式、展示百分比,超出文字省略等

echarts 饼图大小、图例位置样式、展示百分比,超出文字省略等

2024-05-27 10:05:42 前端知识 前端哥 769 778 我要收藏

代码,图片如下,字体的省略我这边没有显示,之前测试过了,可以的。主要的以 + 号形式标记了,方便查阅。

const mainLiftId = useId()
const [dataa,setDataa] = useState( [
  { value: 1048, name: '口水鸡', },
  { value: 735, name: '酸菜鱼' },
  { value: 580, name: '金酱肉丝' },
  { value: 484, name: '梅菜扣肉' },
  { value: 300, name: '鼓汁鱿鱼' },
],[])

useEffect(()=>{
  var chartDom = document.getElementById(mainLiftId);
  var myChart = echarts.init(chartDom);
  var option;
    option = {
        tooltip: {
          trigger: 'item'
        },

        legend: {
          orient: 'vertical',
          icon: "circle",
          itemWidth: 8,  // 小圆点
          right: 50,   +++++
          top: 0,++++++++
          formatter: (name) => {  //  + 1084元  33.30%+++++++++++++++
              let total = 0;
              let target;
              for (let i = 0; i < dataa.length; i++) {
                  total += dataa[i].value;
                  if (dataa[i].name === name) {
                      target = dataa[i].value;
                  }
              }
              let arr = [
                  '{a|' + name + '}{b|' + target + '元' + '}{c|' + ((target / total) * 100).toFixed(2) + '%}'
              ];

              return arr.join('\n')
          },
          textStyle: {+++++++++++++++++++++++++++++++
              rich: {
                  a: {
                      verticalAlign: 'right',
                      fontSize: 12,
                      align: 'left',
                      width: 70
                  },
                  b: {
                      fontSize: 12,
                      align: 'left',
                     
                      width: 50

                  },
                  c: {
                      fontSize: 12,
                      align: 'left',
                      width: 50
                  }
              }
          },
      },
        // legend: {  // 矩形
        //     // type: 'scroll',
          //       orient: 'vertical',  //线性垂直
          //     show: true,
            //     right: 0,
            //     top: 0,
            //     bottom: 0,
            //     textStyle: {fontSize: 10 },
          //     formatter: function (name) {
                //       return (name.length > 5 ? (name.slice(0,8)+"...") : name ); 
            //     },
            //     // data: ['']
        // },
        series: [
          {
            name: '销售额(元)',
            type: 'pie',
            radius: ['60%', '90%'],  // 第一个参数是控制里面小圈的大小,第二个参数是控制外面大圈的大小;
            avoidLabelOverlap: false,
            center: ['20%', '50%'],   // 调节圆形的位置  也可以像素
            itemStyle: {  // 圆形的操作
              borderRadius: 2,  
              borderColor: '#fff',
              borderWidth: 1,
              // emphasis: { // 定义相关 圆形  放大的效果              
              //     shadowBlur: 10,   // 阴影模糊
              //     shadowOffsetX: 10,  // 阴影偏离 X 轴
              //     shadowColor: 'rgba(0, 0, 0, 0.2)'   // 圆形的背景显示
              // },
            },
            label: {
              show: false,
              position: 'center',
            },
            // label: { // 弧形里面显示百分比
            //   normal: {
            //       show: true,
            //       position: 'inner',
            //       formatter: '{d}',
            //       fontSize: 7
            //     }
            // },

            emphasis: {
              label: {
                show: true,
                fontSize: 16,   // 字体的大小  放上去显示
                fontWeight: 'bold'
              }
            },
            labelLine: {
              show: false
            },
            data:dataa,
          },
          
        ],
        // data: this.data
      };
      option && myChart.setOption(option);
},[mainLiftId])

转载请注明出处或者链接地址:https://www.qianduange.cn//article/9735.html
标签
评论
会员中心 联系我 留言建议 回顶部
复制成功!