日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

echarts制作3D锥形金字塔

發(fā)布時(shí)間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 echarts制作3D锥形金字塔 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

工作中遇到了這樣的問(wèn)題,需要繪制3D金字塔,如圖所示:

echarts可以做平面的金字塔和漏斗圖,但是3D金字塔在官網(wǎng)上并沒(méi)有看到相關(guān)案例。查了相關(guān)資料,用象形柱狀圖來(lái)實(shí)現(xiàn),具體代碼如下所示:

<!DOCTYPE html>
<html>
?? ?<head>
?? ??? ?<meta charset="utf-8">
?? ??? ?<title></title>
?? ?</head>
?? ?<body>
?? ??? ?<div id="box" style="width: 500px;height: 400px;background: #000000;"></div>
?? ??? ?<script src="js/echarts.min.js" type="text/javascript" charset="utf-8"></script>
?? ??? ?<script type="text/javascript">
?? ??? ??? ?funnelFn();

?? ??? ??? ?function funnelFn() {

?? ??? ??? ??? ?var loadingFunnel = {
?? ??? ??? ??? ??? ?title: '',
?? ??? ??? ??? ??? ?arrDataX: [],
?? ??? ??? ??? ??? ?arrDataY: [],
?? ??? ??? ??? ?}
?? ??? ??? ??? ?//title標(biāo)示文字,標(biāo)示線(xiàn)
?? ??? ??? ??? ?loadingFunnel.title = (text, top, left, color, fontStyle, fontFamily, fontSize) => {
?? ??? ??? ??? ??? ?return {
?? ??? ??? ??? ??? ??? ?text: text,
?? ??? ??? ??? ??? ??? ?top: top,
?? ??? ??? ??? ??? ??? ?left: left,
?? ??? ??? ??? ??? ??? ?textStyle: {
?? ??? ??? ??? ??? ??? ??? ?color: color,
?? ??? ??? ??? ??? ??? ??? ?fontStyle: fontStyle,
?? ??? ??? ??? ??? ??? ??? ?fontFamily: fontFamily,
?? ??? ??? ??? ??? ??? ??? ?fontSize: fontSize,

?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?};
?? ??? ??? ??? ?loadingFunnel.arrDataX = ['茶葉', '青椒', '大蒜'];
?? ??? ??? ??? ?loadingFunnel.arrDataY = [123, 254, 325];

?? ??? ??? ??? ?
?? ??? ??? ??? ?// loadingFunnel.arrData = [20, 40, 60];
?? ??? ??? ? var myChart = echarts.init(document.getElementById("box"));
?? ??? ??? ??? ?option = {
?? ??? ??? ??? ??? ?title: [
?? ??? ??? ??? ??? ??? ?loadingFunnel.title(loadingFunnel.arrDataX[0], '17%',
?? ??? ??? ??? ??? ??? ??? ?'62%', '#12e7e8', 'normal', 'sans-serif', '16'),
?? ??? ??? ??? ??? ??? ?loadingFunnel.title(loadingFunnel.arrDataY[0], '22%', '62%', '#ffffff', 'normal', 'sans-serif',
?? ??? ??? ??? ??? ??? ??? ?'16'),

?? ??? ??? ??? ??? ??? ?loadingFunnel.title(loadingFunnel.arrDataX[1], '38%',
?? ??? ??? ??? ??? ??? ??? ?'62%', '#4dc6ff', 'normal', 'sans-serif', '16'),
?? ??? ??? ??? ??? ??? ?loadingFunnel.title(loadingFunnel.arrDataY[1], '43%', '62%', '#ffffff', 'normal', 'sans-serif',
?? ??? ??? ??? ??? ??? ??? ?'16'),

?? ??? ??? ??? ??? ??? ?loadingFunnel.title(loadingFunnel.arrDataX[2], '55%',
?? ??? ??? ??? ??? ??? ??? ?'62%', '#eaad38', 'normal', 'sans-serif', '16'),
?? ??? ??? ??? ??? ??? ?loadingFunnel.title(loadingFunnel.arrDataY[2], '61%', '62%', '#ffffff', 'normal', 'sans-serif',
?? ??? ??? ??? ??? ??? ??? ?'16'),
?? ??? ??? ??? ??? ?],
?? ??? ??? ??? ??? ?tooltip: {
?? ??? ??? ??? ??? ??? ?show: true,
?? ??? ??? ??? ??? ??? ?formatter: function(params) {
?? ??? ??? ??? ??? ??? ??? ?console.log(params)
?? ??? ??? ??? ??? ??? ??? ?return params.marker + params.name + ':' + params.data.number + '萬(wàn)'
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ?grid: {
?? ??? ??? ??? ??? ??? ?// containLabel: true,
?? ??? ??? ??? ??? ??? ?left: '10%',
?? ??? ??? ??? ??? ??? ?top: "19%",
?? ??? ??? ??? ??? ??? ?bottom: "0%",
?? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ?xAxis: {
?? ??? ??? ??? ??? ??? ?show: false,
?? ??? ??? ??? ??? ??? ?data: [
?? ??? ??? ??? ??? ??? ??? ?'',
?? ??? ??? ??? ??? ??? ??? ?'',
?? ??? ??? ??? ??? ??? ??? ?'',
?? ??? ??? ??? ??? ??? ??? ?''
?? ??? ??? ??? ??? ??? ?],
?? ??? ??? ??? ??? ??? ?axisTick: {
?? ??? ??? ??? ??? ??? ??? ?show: false
?? ??? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ??? ?axisLabel: {
?? ??? ??? ??? ??? ??? ??? ?color: '#5EA2ED',
?? ??? ??? ??? ??? ??? ??? ?interval: 0
?? ??? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ??? ?axisLine: {
?? ??? ??? ??? ??? ??? ??? ?lineStyle: {
?? ??? ??? ??? ??? ??? ??? ??? ?color: '#1B5BBA',
?? ??? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ?yAxis: {
?? ??? ??? ??? ??? ??? ?show: false,
?? ??? ??? ??? ??? ??? ?splitLine: {
?? ??? ??? ??? ??? ??? ??? ?show: false
?? ??? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ??? ?axisLine: {
?? ??? ??? ??? ??? ??? ??? ?lineStyle: {
?? ??? ??? ??? ??? ??? ??? ??? ?color: '#1B5BBA',
?? ??? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ??? ?axisLabel: {
?? ??? ??? ??? ??? ??? ??? ?color: '#5EA2ED',
?? ??? ??? ??? ??? ??? ??? ?interval: 0
?? ??? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ?series: [{
?? ??? ??? ??? ??? ??? ?type: 'pictorialBar',
?? ??? ??? ??? ??? ??? ?// ?labelLine:{
?? ??? ??? ??? ??? ??? ?// ?? ? show:true,
?? ??? ??? ??? ??? ??? ?// ?? ? length2:20,
?? ??? ??? ??? ??? ??? ?// ?? ? ?lineStyle:{
?? ??? ??? ??? ??? ??? ?// ?? ??? ? ?color:'red',
?? ??? ??? ??? ??? ??? ?// ?? ??? ? ?width:5
?? ??? ??? ??? ??? ??? ?// ?? ? ?}

?? ??? ??? ??? ??? ??? ?// ?},
?? ??? ??? ??? ??? ??? ?// ?label: {
?? ??? ??? ??? ??? ??? ?// ? ? ? ? ?show: true,
?? ??? ??? ??? ??? ??? ?// ? ? ? ? ?position: 'right',
?? ??? ??? ??? ??? ??? ?// ? ? ? ? ?formatter: '{b}{c} 萬(wàn)頭',
?? ??? ??? ??? ??? ??? ?// ? ? ? ? ?fontSize: 16,
?? ??? ??? ? ??? ?// ? ? ? ? ?color: '#e54035',
?? ??? ??? ??? ??? ??? ?// ?? ??? ? verticalAlign:'top'
?? ??? ??? ??? ??? ??? ?// },
?? ??? ??? ??? ??? ??? ?data: [{
?? ??? ??? ??? ??? ??? ??? ?name: loadingFunnel.arrDataX[0],
?? ??? ??? ??? ??? ??? ??? ?// z: 100,
?? ??? ??? ??? ??? ??? ??? ?value: 20,
?? ??? ??? ??? ??? ??? ??? ?number: loadingFunnel.arrDataY[0],
?? ??? ??? ??? ??? ??? ??? ?symbolSize: ['130%', '90%'],
?? ??? ??? ??? ??? ??? ??? ?symbolPosition: 'center',
?? ??? ??? ??? ??? ??? ??? ?symbolOffset: ['60%', '-250%'],
?? ??? ??? ??? ??? ??? ??? ?symbol: 'image://Funnel1.png',
?? ??? ??? ??? ??? ??? ?}, {
?? ??? ??? ??? ??? ??? ??? ?name: loadingFunnel.arrDataX[1],
?? ??? ??? ??? ??? ??? ??? ?// z: 90,
?? ??? ??? ??? ??? ??? ??? ?value: 40,
?? ??? ??? ??? ??? ??? ??? ?number: loadingFunnel.arrDataY[1],
?? ??? ??? ??? ??? ??? ??? ?symbolSize: ['200%', '40%'],
?? ??? ??? ??? ??? ??? ??? ?symbolPosition: 'center',
?? ??? ??? ??? ??? ??? ??? ?symbolOffset: ['-22%', '-130%'],
?? ??? ??? ??? ??? ??? ??? ?symbol: 'image://Funnel2.png',
?? ??? ??? ??? ??? ??? ?}, {
?? ??? ??? ??? ??? ??? ??? ?name: loadingFunnel.arrDataX[2],
?? ??? ??? ??? ??? ??? ??? ?// z: 80,
?? ??? ??? ??? ??? ??? ??? ?value: 60,
?? ??? ??? ??? ??? ??? ??? ?number: loadingFunnel.arrDataY[2],
?? ??? ??? ??? ??? ??? ??? ?symbolSize: ['280%', '35%'],
?? ??? ??? ??? ??? ??? ??? ?symbolPosition: 'center',
?? ??? ??? ??? ??? ??? ??? ?symbolOffset: ['-60%', '10%'],
?? ??? ??? ??? ??? ??? ??? ?symbol: 'image://Funnel3.png',
?? ??? ??? ??? ??? ??? ?}, ]
?? ??? ??? ??? ??? ?}]
?? ??? ??? ? };
?? ??? ??? ??? ?myChart.setOption(option);
?? ??? ??? ?}
?? ??? ?</script>
?? ?</body>
</html>

<!DOCTYPE html> <html><head><meta charset="utf-8"><title></title></head><body><div id="box" style="width: 500px;height: 400px;background: #000000;"></div><script src="js/echarts.min.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">funnelFn();function funnelFn() {var loadingFunnel = {title: '',arrDataX: [],arrDataY: [],}//title標(biāo)示文字,標(biāo)示線(xiàn)loadingFunnel.title = (text, top, left, color, fontStyle, fontFamily, fontSize) => {return {text: text,top: top,left: left,textStyle: {color: color,fontStyle: fontStyle,fontFamily: fontFamily,fontSize: fontSize,}}};loadingFunnel.arrDataX = ['茶葉', '青椒', '大蒜'];loadingFunnel.arrDataY = [123, 254, 325];// loadingFunnel.arrData = [20, 40, 60];var myChart = echarts.init(document.getElementById("box"));option = {title: [loadingFunnel.title(loadingFunnel.arrDataX[0], '17%','62%', '#12e7e8', 'normal', 'sans-serif', '16'),loadingFunnel.title(loadingFunnel.arrDataY[0], '22%', '62%', '#ffffff', 'normal', 'sans-serif','16'),loadingFunnel.title(loadingFunnel.arrDataX[1], '38%','62%', '#4dc6ff', 'normal', 'sans-serif', '16'),loadingFunnel.title(loadingFunnel.arrDataY[1], '43%', '62%', '#ffffff', 'normal', 'sans-serif','16'),loadingFunnel.title(loadingFunnel.arrDataX[2], '55%','62%', '#eaad38', 'normal', 'sans-serif', '16'),loadingFunnel.title(loadingFunnel.arrDataY[2], '61%', '62%', '#ffffff', 'normal', 'sans-serif','16'),],tooltip: {show: true,formatter: function(params) {console.log(params)return params.marker + params.name + ':' + params.data.number + '萬(wàn)'}},grid: {// containLabel: true,left: '10%',top: "19%",bottom: "0%",},xAxis: {show: false,data: ['','','',''],axisTick: {show: false},axisLabel: {color: '#5EA2ED',interval: 0},axisLine: {lineStyle: {color: '#1B5BBA',}}},yAxis: {show: false,splitLine: {show: false},axisLine: {lineStyle: {color: '#1B5BBA',}},axisLabel: {color: '#5EA2ED',interval: 0},},series: [{type: 'pictorialBar',// labelLine:{// show:true,// length2:20,// lineStyle:{// color:'red',// width:5// }// },// label: {// show: true,// position: 'right',// formatter: '{b}{c} 萬(wàn)頭',// fontSize: 16,// color: '#e54035',// verticalAlign:'top'// },data: [{name: loadingFunnel.arrDataX[0],// z: 100,value: 20,number: loadingFunnel.arrDataY[0],symbolSize: ['130%', '90%'],symbolPosition: 'center',symbolOffset: ['60%', '-250%'],symbol: 'image://Funnel1.png',}, {name: loadingFunnel.arrDataX[1],// z: 90,value: 40,number: loadingFunnel.arrDataY[1],symbolSize: ['200%', '40%'],symbolPosition: 'center',symbolOffset: ['-22%', '-130%'],symbol: 'image://Funnel2.png',}, {name: loadingFunnel.arrDataX[2],// z: 80,value: 60,number: loadingFunnel.arrDataY[2],symbolSize: ['280%', '35%'],symbolPosition: 'center',symbolOffset: ['-60%', '10%'],symbol: 'image://Funnel3.png',}, ]}]};myChart.setOption(option);}</script></body> </html>

?運(yùn)行結(jié)果如圖所示:

?注意:圖片是自己的,三層金字塔,每一層切一張圖出來(lái)。

這是我找到的做法,如果各位大佬們有更好的寫(xiě)法,歡迎留言評(píng)論哦~

總結(jié)

以上是生活随笔為你收集整理的echarts制作3D锥形金字塔的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。