Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Echarts #17

Open
xiaotiandada opened this issue Jan 19, 2021 · 0 comments
Open

Echarts #17

xiaotiandada opened this issue Jan 19, 2021 · 0 comments

Comments

@xiaotiandada
Copy link
Owner

xiaotiandada commented Jan 19, 2021

饼图

Doughnut Chart

链接

官方给出了 demo 其实也还挺好看的,只是不适合直接放在业务里面(需要变变色,变色大小什么的)

让我们一步步改造他吧。

let json = {
  ...
   legend: {
     ...
    icon: "circle",  // legend icon形状 也可以自定义
  },
  series: [{
    name: "甜甜圈",
    type: "pie",
    radius: ["30%", "60%"], // 'radius' 扇区圆心角展现数据的百分比,半径展现数据的大小。
    center: ["50%", "50%"], // 饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标。
    color: ["#1976D2", "#2196F3", "#03A9F4"], // 颜色
    ...
  }]
}

是不是很简单!感觉都没什么好写的 23333(继续改,后面使用上面的 json)。

仓库地址

有时候会遇到这种空心圆中间放 icon 图片的时候 于是就有下图

let json = {
  ...
    // graphic 是原生图形元素组件。可以支持的图形元素包括:
    // image, text, circle, sector, ring, polygon, polyline, rect, line, bezierCurve, arc, group,
   graphic: {
    type: "image",
    left: "center",  // 位置
    top: "center",   // 位置
    style: {
      image: "chartsGraphic.png",  // 路径
      width: 100,                  // 宽高
      height: 100
    }
  },
  ...
}

文档地址

继续复制粘贴 emmmm

如果很多个标题,设计稿放在两边! (xiaochangmian)

let json = {
  ...
  // 将legend 变成数组形式,左右各一个
    legend: [{
      x: "left",
      itemGap: 30,
      icon: "circle",
      data: []      // 里面存放名字
    },
    {
      x: "right",
      itemGap: 30,
      icon: "circle",
      data: []   // 里面存放名字
    }
  ],
  ...
}

// 我自己写了一个方法存进去,可供参考
// 传入数据和 json 配置
// 数字可以抽离出来,大家可以自行改造(或者取长度/2 需要算上单数情况)
function setChartsAreaLength(areaName, json) {
let arr1 = [],
arr2 = [];
areaName.map((item, index) => {
index < 8 ? (arr1 = [...arr1, item]) : (arr2 = [...arr2, item]);
});
json.legend[0].data = arr1;
json.legend[1].data = arr2;
}

Referer of a website

于是继续搞

这个同第一个 改改颜色就好了 然后隐藏标线和文字

let json = {
  ...
   series: [{
    data: [],
    label: {
      show: false // 是否显示标示文字
    },
    labelLine: {
      show: false // 是否显示视觉引导线
    }
  }]
  ...
};

Nested Pies

嵌套饼图

let json = {
  ...
  // 将legend 变成数组形式,左右各一个
    legend: [{
      data: ['白天', '晚上']
    },
    {
      data: ['上班', '游戏', '休息']
    }
  ],
   series: [{
      radius: [0, '36%'],    // 饼图大小  内饼图 从0-36%
      data: [{
          value: 12,
          name: '白天',
        },
        {
          value: 12,
          name: '晚上'
        }
      ]
    },
    {
      name: '分类',
      type: 'pie',
      radius: ['44%', '72%'],  // 饼图大小  内饼图 从44%-75%
      data: [{
          value: 335,
          name: '上班'
        },
        {
          value: 310,
          name: '游戏'
        }, {
          value: 300,
          name: '休息'
        }
      ]
    }
  ]
  ...
}

2018-12-24 更

嵌套饼图有时候可能文字需要在图表上面,让我们一起来改造改造

let json = {
  ...
  // 配置和上一个饼图一模一样
   series: [{
     label: {
        show: true,            // 显示折线文字(好像默认显示)
        color: '#fff',        // 文字颜色
        position: 'inside'    // 显示位置
      },
      labelLine: {
        show: false          // 内饼图文字在图上方 不需要折线
      },
    },
    {
    label: {
          show: true,       // 同上
          color: '#fff'
        },
        labelLine: {
          show: true,       // 需要折线(可自行扩展)
        },
      }
  ]
  ...
}
@xiaotiandada xiaotiandada changed the title Echarts系列之复制粘贴大法 Echarts Oct 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant