- 官网找到类似实例, 适当分析,并且引入到HTML页面中
- 根据需求定制图表
需求1: 修改图形大小 grid
- // 图标位置
- grid: {
- top: "10%",
- left: "22%",
- bottom: "10%"
- },
需求2: 不显示x轴
- xAxis: {
- show: false
- },
需求3: y轴相关定制
- 不显示y轴线和相关刻度
- axisLine: {
- show: false
- },
- // 不显示刻度
- axisTick: {
- show: false
- },
- y轴文字的颜色设置为白色
- axisLabel: {
- color: "#fff"
- },
需求4: 修改第一组柱子相关样式(条状)
- name: "条",
- // 柱子之间的距离
- barCategoryGap: 50,
- //柱子的宽度
- barWidth: 10,
- // 柱子设为圆角
- itemStyle: {
- normal: {
- barBorderRadius: 20,
- }
- },
- 设置第一组柱子内百分比显示数据
- label: {
- normal: {
- show: true,
- // 图形内显示
- position: "inside",
- // 文字的显示格式
- formatter: "{c}%"
- }
- },
- 设置第一组柱子不同颜色
- // 声明颜色数组
- var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];
- // 2. 给 itemStyle 里面的color 属性设置一个 返回值函数
- itemStyle: {
- normal: {
- barBorderRadius: 20,
- // params 传进来的是柱子对象
- console.log(params);
- // dataIndex 是当前柱子的索引号
- return myColor[params.dataIndex];
- }
-
- },
传递进来的是柱子对象
需求5: 修改第二组柱子的相关配置(框状)
- name: "框",
- type: "bar",
- barCategoryGap: 50,
- barWidth: 15,
- itemStyle: {
- color: "none",
- borderColor: "#00c1de",
- borderWidth: 3,
- barBorderRadius: 15
- },
- data: [19325, 23438, 31000, 121594, 134141, 681807]
- }
需求6: 给y轴添加第二组数据
- yAxis: [
- {
- type: "category",
- data: ["印尼", "美国", "印度", "中国", "世界人口(万)"],
- // 不显示y轴的线
- axisLine: {
- show: false
- },
- // 不显示刻度
- axisTick: {
- show: false
- },
- // 把刻度标签里面的文字颜色设置为白色
- axisLabel: {
- color: "#fff"
- }
- },
- {
- show: true,
- data: [702, 350, 610, 793, 664],
- // 不显示y轴的线
- axisLine: {
- show: false
- },
- // 不显示刻度
- axisTick: {
- show: false
- },
- axisLabel: {
- textStyle: {
- fontSize: 12,
- color: "#fff"
- }
- }
- }
- ],
需求7: 设置两组柱子层叠以及更换数据
- // 给series 第一个对象里面的 添加
- yAxisIndex: 0,
- // 给series 第二个对象里面的 添加
- yAxisIndex: 1,
- // series 第一个对象里面的data
- data: [70, 34, 60, 78, 69],
- // series 第二个对象里面的data
- data: [100, 100, 100, 100, 100],
- // y轴更换第一个对象更换data数据
- data: ["HTML5", "CSS3", "javascript", "VUE", "NODE"],
- // y轴更换第二个对象更换data数据
- data:[702, 350, 610, 793, 664],
完整代码:
- (function() {
- var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];
- // 1. 实例化对象
- var myChart = echarts.init(document.querySelector(".bar2 .chart"));
- // 2. 指定配置和数据
- var option = {
- grid: {
- top: "10%",
- left: "22%",
- bottom: "10%"
- // containLabel: true
- },
- // 不显示x轴的相关信息
- xAxis: {
- show: false
- },
- // yAxis: 后面跟数组表示跟着是不同的对象
- yAxis: [
- {
- type: "category",
- // 默认坐标轴是反着的,通过这个可以变成正的
- inverse: true,
- data: ["HTML5", "CSS3", "javascript", "VUE", "NODE"],
- // 不显示y轴的线
- axisLine: {
- show: false
- },
- // 不显示刻度
- axisTick: {
- show: false
- },
- // 把刻度标签里面的文字颜色设置为白色
- axisLabel: {
- color: "#fff"
- }
- },
- {
- data: [702, 350, 610, 793, 664],
- inverse: true,
- // 不显示y轴的线
- axisLine: {
- show: false
- },
- // 不显示刻度
- axisTick: {
- show: false
- },
- // 把刻度标签里面的文字颜色设置为白色
- axisLabel: {
- color: "#fff"
- }
- }
- ],
- series: [
- {
- name: "条",
- type: "bar",
- data: [70, 34, 60, 78, 69],
- yAxisIndex: 0,
- // 修改第一组柱子的圆角
- itemStyle: {
- barBorderRadius: 20,
- // 此时的color 可以修改柱子的颜色
- color: function(params) {
- // params 传进来的是柱子对象
- console.log(params);
- // dataIndex 是当前柱子的索引号
- return myColor[params.dataIndex];
- }
- },
- // 柱子之间的距离
- barCategoryGap: 50,
- //柱子的宽度
- barWidth: 10,
- // 显示柱子内的文字
- label: {
- show: true,
- // 柱子内
- position: "inside",
- // {c} 会自动的解析为 数据 data里面的数据 c是数据值
- formatter: "{c}%"
- }
- },
- {
- name: "框",
- type: "bar",
- barCategoryGap: 50,
- barWidth: 15,
- yAxisIndex: 1,
- data: [100, 100, 100, 100, 100],
- itemStyle: {
- color: "none",
- borderColor: "#00c1de",
- borderWidth: 3,
- barBorderRadius: 15
- }
- }
- ]
-
- };
- // 3. 把配置给实例对象
- myChart.setOption(option);
- //4.让图表跟随屏幕自动去适用
- window.addEventListener("resize", function() {
- myChart.resize();
- });
- })();