echarts 3d柱状图水平

echarts 3d柱状图水平 ,利用象形图 左+主体+右 ,设置rgba颜色

在这里插入图片描述

象形图设置

 		//3d柱状图主体
      {
        type: "pictorialBar",
        data: data,
        barCategoryGap: "100%",
     	//柱状图位置
        symbolOffset: [0, -10],
     	//柱状图现状
        symbol: "path://M0 0 L32 0 L32 128 L0 128 Z",
        //层级
        z: 2,
        itemStyle: {
          color: "rgba(2, 182, 169, .6)",
        },
        barWidth: 21,
      },
      //右上
      {
       // 隐藏象形图
        show: true,
        //type 类型象形图
        type: "pictorialBar",
        barCategoryGap: "100%",
        symbolSize: [8, 20],
         //位置
        symbolOffset: [3, 0],
        symbol: (value) => {
          if (value) return "circle";
          else return "none";
        },
        z: 1,
        //柱状图背景色
        itemStyle: {
          color: "rgba(2, 182, 169, 1)",
        },
        symbolPosition: "end",
        //echarts数据
        data: data,
      },
      //左底
      {
        show: true,
        type: "pictorialBar",
        symbol: (value) => {
          if (value) return "circle";
          else return "none";
        },
        symbolSize: [8, 20],
        symbolOffset: [-3, 0],
        barCategoryGap: "100%",
        z: 1,
        itemStyle: {
          color: "rgba(2, 182, 169, 1)",
        },
        data: data,
      },

示例代码

// Echarts 3d柱状图水平展示
const echartsOption = () => {
  myChart.value.setOption({
    title: {
      text: "",
      x: "center",
      y: "center",
      textStyle: {
        fontSize: 14,
        color: "#4E5969",
      },
    },
    grid: {
      left: "3%",
      right: "0%",
      top: "0%",
      bottom: "0%",
      containLabel: true,
    },
    tooltip: {
      show: true,
      trigger: "axis",
      axisPointer: {
        type: "none",
      },
      // 浮窗数据 根据业务需求进行展示数据
      formatter: function (parms) {
        if (parms[0].value == "0.01") {
          return parms[0].name + ":" + "0" + "个";
        } else {
          return parms[0].name + ":" + parms[0].value + "个";
        }
      },
    },
    xAxis: {
      type: "value",
      axisLabel: {
        show: false,
      },
      axisLine: {
        show: false,
      },
      splitLine: {
        show: false,
      },
    },
    yAxis: [
      {
        type: "category",
        inverse: true,
        axisTick: {
          show: false,
        },
        axisLine: {
          show: false,
          lineStyle: {
            fontSize: 14,
            color: "#1D2129",
          },
        },
        splitLine: {
          show: false,
        },
        data: rightdata.value,
        axisLabel: {
          color: "#1D2129",
          fontSize: 14,
          margin: 15,
          formatter: function (params) {
            var str = ""; // 最终拼接成的字符串
            var paramsLen = params.length; // 获取每项文字的个数
            var len = 8; // 每行能显示的字的个数(根据实际情况自己设置)
            var rowNumber = Math.ceil(paramsLen / len); // 换行的话,需要显示几行,向上取整
            if (paramsLen > len) {
              //大于设定的len就换行,不大于就不变化
              for (var i = 0; i < rowNumber; i++) {
                var temp = ""; // 表示每一次截取的字符串
                var start = i * len; // 开始截取的位置
                var end = start + len; // 结束截取的位置
                if (i == rowNumber - 1) {
                  // 最后一次不换行
                  temp = params.substring(start, paramsLen);
                } else {
                  // 每一次拼接字符串并换行
                  temp = params.substring(start, end) + "\n";
                }
                str += temp; // 最终拼成的字符串
              }
            } else {
              // 给新的字符串赋值
              str = params;
            }
            return "{a|" + `${str}` + "}"; //返回字符串
          },
          rich: {
            a: {
              height: 18, //设置行高
            },
          },
        },
      },
      {
        //右侧Y轴数据
        inverse: true, //如果数据数组倒置排序,加上此代码
        data: echartsData,
        axisLabel: {
          margin: 60,
          color: "#1D2129",
          fontSize: "14",
          align: "right",
          formatter: (value) => {
            return value == "0.01" ? "0" + "个" : value + "个";
          },
          rich: {
            name: {
              backgroundColor: "none",
              fontSize: 14,
            },
          },
        },
        axisLine: {
          show: false,
        },
        axisTick: {
          show: false,
        },
        splitLine: {
          //编辑背景线条样式
          show: false,
        },
      },
    ],
    series: [
     //3d柱状图数据
      {
        type: "bar",
        barWidth: 21,
        showBackground: true,
        data: data,
        backgroundStyle: {
          color: "rgba(2, 182, 169, .2)",
        },
        itemStyle: {
          color: "rgba(255, 255, 255, 0)",
        },
      },
      //3d柱状图主体
      {
        type: "pictorialBar",
        data: data,
        barCategoryGap: "100%",
      //柱状图位置
        symbolOffset: [0, -10],
        symbol: "path://M0 0 L32 0 L32 128 L0 128 Z",
        z: 2,
        itemStyle: {
          color: "rgba(2, 182, 169, .6)",
        },
        barWidth: 21,
      },
      {
        show: true, // 隐藏象形图
        type: "pictorialBar",
        barCategoryGap: "100%",
        symbolSize: [8, 20],
         //[右端,0]
        symbolOffset: [3, 0],
        symbol: (value) => {
          if (value) return "circle";
          else return "none";
        },
        z: 1,
        itemStyle: {
          color: "rgba(2, 182, 169, 1)",
        },
        symbolPosition: "end",
        data: data,
      },
      {
        show: true, // 隐藏象形图
        type: "pictorialBar",
        symbol: (value) => {
          if (value) return "circle";
          else return "none";
        },
        symbolSize: [8, 20],
         //[左端为负,0]
        symbolOffset: [-3, 0],
        barCategoryGap: "100%",
        z: 1,
        itemStyle: {
          color: "rgba(2, 182, 169, 1)",
        },
        data: data,
      },
    ],
  });
};
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts 是一个由百度开发的数据可视化库,它提供了丰富而强大的图表功能,包括 3D 柱状图。要绘制一个 ECharts 3D 柱状图,你可以按照以下步骤进行操作: 1. 首先,确保你已经引入了 ECharts 库。你可以在 HTML 文件中使用以下代码来引入 ECharts: ```html <script src="https://cdn.jsdelivr.net/npm/echarts@5.1.2/dist/echarts.min.js"></script> ``` 2. 创建一个具有指定宽度和高度的 DOM 元素,用于容纳图表。例如: ```html <div id="chart" style="width: 600px; height: 400px;"></div> ``` 3. 使用 JavaScript 代码初始化并配置图表。以下是一个简单的示例: ```javascript // 获取容器元素 var chartContainer = document.getElementById('chart'); // 初始化图表 var chart = echarts.init(chartContainer); // 配置项 var options = { grid3D: {}, // 开启 3D 网格 xAxis3D: {}, // x 轴配置 yAxis3D: {}, // y 轴配置 zAxis3D: {}, // z 轴配置 series: [{ type: 'bar3D', // 使用 3D 柱状图类型 data: [[0, 0, 0, 1]], // 数据数组,每个数据项格式为 [x, y, z, value] shading: 'lambert', // 光照渲染模式 label: { show: true, // 显示柱状图上的标签 textStyle: { fontSize: 16, // 标签字体大小 } }, itemStyle: { opacity: 0.8, // 柱状图透明度 color: '#ff0000' // 柱状图颜色 } }] }; // 使用配置项生成图表 chart.setOption(options); ``` 这是一个简单的示例,你可以根据你的需求进行进一步的配置和样式调整。通过修改 `data` 数组中的数据,你可以绘制更多的柱状图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值