vue+echarts實現3D柱形圖
更新時間:2022年04月02日 11:49:43 作者:Cherry?
這篇文章主要為大家詳細介紹了vue+echarts實現3D柱形圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了vue+echarts實現3D柱形圖的具體代碼,供大家參考,具體內容如下

1、安裝echarts
npm install echarts --save
2、引入echarts
import echarts from "echarts"; //修改原型鏈,可在全局使用 Vue.prototype.$echarts = echarts;
3、創(chuàng)建圖表 首先需要在 HTML 中創(chuàng)建圖表的容器
<div id="echarts_park"></div>
??? ?//圖表的容器必須指定寬高
?? ? #echarts_park {
?? ??? ? width: 400px;
?? ??? ? height: 200px;
}4、渲染圖表
mounted() {
? ? this.drawPark();
? },
? methods: {
? ? drawPark() {
? ? ?? ?//初始化echarts
? ? ? let myChart = this.$echarts.init(document.getElementById("echarts_park"));
? ? ? let num= [
? ? ? ? "12",
? ? ? ? "12",
? ? ? ? "12",
? ? ? ? "14",
? ? ? ? "12",
? ? ? ? "12",
? ? ? ? "12",
? ? ? ? "14",
? ? ? ? "12",
? ? ? ? "12",
? ? ? ? "12",
? ? ? ];
? ? ? let xData = [
? ? ? ? "杭州市",
? ? ? ? "杭州市",
? ? ? ? "杭州市",
? ? ? ? "杭州市",
? ? ? ? "杭州市",
? ? ? ? "杭州市",
? ? ? ? "杭州市",
? ? ? ? "杭州市",
? ? ? ? "杭州市",
? ? ? ? "杭州市",
? ? ? ? "杭州市",
? ? ? ];
? ? ? var colors = [
? ? ? ? {
? ? ? ? ? type: "linear",
? ? ? ? ? x: 0,
? ? ? ? ? x2: 1,
? ? ? ? ? y: 0,
? ? ? ? ? y2: 0,
? ? ? ? ? colorStops: [
? ? ? ? ? ? {
? ? ? ? ? ? ? offset: 0,
? ? ? ? ? ? ? color: "#0088F1",
? ? ? ? ? ? },
? ? ? ? ? ? {
? ? ? ? ? ? ? offset: 1,
? ? ? ? ? ? ? color: "#00D1FF",
? ? ? ? ? ? },
? ? ? ? ? ],
? ? ? ? },
? ? ? ? {
? ? ? ? ? type: "linear",
? ? ? ? ? x: 0,
? ? ? ? ? x2: 0,
? ? ? ? ? y: 0,
? ? ? ? ? y2: 1,
? ? ? ? ? colorStops: [
? ? ? ? ? ? {
? ? ? ? ? ? ? offset: 0,
? ? ? ? ? ? ? color: "#67D0FF",
? ? ? ? ? ? },
? ? ? ? ? ? {
? ? ? ? ? ? ? offset: 1,
? ? ? ? ? ? ? color: "#3486DA",
? ? ? ? ? ? },
? ? ? ? ? ],
? ? ? ? },
? ? ? ];
? ? ? var barWidth = 18;
? ? ? // 繪制圖表
? ? ? myChart.setOption({
? ? ? ? tooltip: {
? ? ? ? ? trigger: "axis",
? ? ? ? ? axisPointer: {
? ? ? ? ? ? // 坐標軸指示器,坐標軸觸發(fā)有效
? ? ? ? ? ? type: "shadow", // 默認為直線,可選為:'line' | 'shadow'
? ? ? ? ? },
? ? ? ? ? formatter: function (params) {
? ? ? ? ? ? var tipString = params[0].axisValue + "<br />";
? ? ? ? ? ? var key = "value";
? ? ? ? ? ? params.sort(function (obj1, obj2) {
? ? ? ? ? ? ? var val1 = obj1[key];
? ? ? ? ? ? ? var val2 = obj2[key];
? ? ? ? ? ? ? if (val1 < val2) {
? ? ? ? ? ? ? ? return 1;
? ? ? ? ? ? ? } else if (val1 > val2) {
? ? ? ? ? ? ? ? return -1;
? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? return 0;
? ? ? ? ? ? ? }
? ? ? ? ? ? });
? ? ? ? ? ? var indexColor;
? ? ? ? ? ? for (var i = 0, length = params.length; i < length; i++) {
? ? ? ? ? ? ? if (params[i].componentSubType == "bar") {
? ? ? ? ? ? ? ? indexColor = params[i + 1].color;
? ? ? ? ? ? ? ? tipString +=
? ? ? ? ? ? ? ? ? '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background:' +
? ? ? ? ? ? ? ? ? indexColor +
? ? ? ? ? ? ? ? ? '"></span>';
? ? ? ? ? ? ? ? tipString +=
? ? ? ? ? ? ? ? ? '<span data-type ="lineTip" data-val=' +
? ? ? ? ? ? ? ? ? params[i].value +
? ? ? ? ? ? ? ? ? ">" +
? ? ? ? ? ? ? ? ? params[i].seriesName +
? ? ? ? ? ? ? ? ? ":" +
? ? ? ? ? ? ? ? ? params[i].value +
? ? ? ? ? ? ? ? ? "</span><br />";
? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? return tipString;
? ? ? ? ? },
? ? ? ? },
? ? ? ? grid: {
? ? ? ? ? left: "3%",
? ? ? ? ? right: "3%",
? ? ? ? ? bottom: "6%",
? ? ? ? ? top: "20%",
? ? ? ? ? containLabel: true,
? ? ? ? },
? ? ? ? xAxis: {
? ? ? ? ? type: "category",
? ? ? ? ? data: xData,
? ? ? ? ? offset: 6,
? ? ? ? ? axisLine: { lineStyle: { color: " #CCCCCC" } },
? ? ? ? ? axisTick: {
? ? ? ? ? ? alignWithLabel: true,
? ? ? ? ? },
? ? ? ? ? axisLabel: {
? ? ? ? ? ? interval: 0,
? ? ? ? ? ? // rotate: 20,
? ? ? ? ? ? textStyle: {
? ? ? ? ? ? ? color: "#000",
? ? ? ? ? ? ? fontStyle: "normal",
? ? ? ? ? ? ? fontFamily: "微軟雅黑",
? ? ? ? ? ? ? fontSize: 13,
? ? ? ? ? ? ? margin: 10,
? ? ? ? ? ? },
? ? ? ? ? },
? ? ? ? },
? ? ? ? yAxis: {
? ? ? ? ? type: "value",
? ? ? ? ? name: "(%)",
? ? ? ? ? nameTextStyle: {
? ? ? ? ? ? align: "right",
? ? ? ? ? ? color: "#4D4D4D",
? ? ? ? ? },
? ? ? ? ? axisLine: {
? ? ? ? ? ? show: false,
? ? ? ? ? ? lineStyle: { color: "#CCCCCC" },
? ? ? ? ? },
? ? ? ? ? axisTick: { show: false },
? ? ? ? ? splitLine: {
? ? ? ? ? ? show: true,
? ? ? ? ? ? lineStyle: { type: "dashed", color: "#CCCCCC" },
? ? ? ? ? },
? ? ? ? ? axisLabel: {
? ? ? ? ? ? textStyle: {
? ? ? ? ? ? ? color: "#4D4D4D",
? ? ? ? ? ? ? fontSize: 14,
? ? ? ? ? ? },
? ? ? ? ? },
? ? ? ? },
? ? ? ? series: [
? ? ? ? ? {
? ? ? ? ? ? name: "2020",
? ? ? ? ? ? type: "bar",
? ? ? ? ? ? barGap: "14%",
? ? ? ? ? ? barWidth: 18,
? ? ? ? ? ? itemStyle: {
? ? ? ? ? ? ? normal: {
? ? ? ? ? ? ? ? color: colors[1],
? ? ? ? ? ? ? ? barBorderRadius: 0,
? ? ? ? ? ? ? },
? ? ? ? ? ? },
? ? ? ? ? ? data: num,
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? z: 2,
? ? ? ? ? ? name: "2020",
? ? ? ? ? ? type: "pictorialBar",
? ? ? ? ? ? data: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
? ? ? ? ? ? symbol: "diamond",
? ? ? ? ? ? symbolOffset: ["0%", "50%"],
? ? ? ? ? ? symbolSize: [barWidth, 10],
? ? ? ? ? ? itemStyle: {
? ? ? ? ? ? ? normal: {
? ? ? ? ? ? ? ? color: colors[1],
? ? ? ? ? ? ? },
? ? ? ? ? ? },
? ? ? ? ? },
? ? ? ? ? {
? ? ? ? ? ? z: 3,
? ? ? ? ? ? name: "2020",
? ? ? ? ? ? type: "pictorialBar",
? ? ? ? ? ? symbolPosition: "end",
? ? ? ? ? ? data: qichu,
? ? ? ? ? ? symbol: "diamond",
? ? ? ? ? ? symbolOffset: ["0%", "-50%"],
? ? ? ? ? ? symbolSize: [barWidth, (10 * (barWidth - 1)) / barWidth],
? ? ? ? ? ? itemStyle: {
? ? ? ? ? ? ? normal: {
? ? ? ? ? ? ? ? borderColor: "#67D0FF",
? ? ? ? ? ? ? ? borderWidth: 2,
? ? ? ? ? ? ? ? color: "#67D0FF",
? ? ? ? ? ? ? },
? ? ? ? ? ? },
? ? ? ? ? },
? ? ? ? ],
? ? ? });
? ? },
},以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
關于vue-lunar-full-calendar的使用說明
這篇文章主要介紹了關于vue-lunar-full-calendar的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
vue+springboot+element+vue-resource實現文件上傳教程
這篇文章主要介紹了vue+springboot+element+vue-resource實現文件上傳教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
Vue3警告:Failed to resolve component:XXX的詳細解決辦法
最近在一個vue3項目中遇到了報錯,整理了些解決辦法,這篇文章主要給大家介紹了關于Vue3警告:Failed to resolve component:XXX的詳細解決辦法,文中介紹的非常詳細,需要的朋友可以參考下2023-05-05
vue3中getCurrentInstance不推薦使用及在<script?setup>中獲取全局內容的三種方式
這篇文章主要給大家介紹了關于vue3中getCurrentInstance不推薦使用及在<script?setup>中獲取全局內容的三種方式,文中通過介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-02-02

