Le code ci-dessous est un exemple d'utilisation du treemap d'Echart, je souhaite que chaque série soit disposée dans l'ordre vertical, puis connectée à chaque série, puis redimensionnée en fonction des données.
Dans cet exemple, chaque série sera classée aléatoirement selon sa taille.
https://echarts.apache.org/examples/an/editor.html?c=treemap-disk
myChart.showLoading(); $.get(ROOT_PATH + '/data/asset/data/disk.tree.json', function (diskData) { myChart.hideLoading(); const formatUtil = echarts.format; function getLevelOption() { return [ { itemStyle: { borderWidth: 0, gapWidth: 5 } }, { itemStyle: { gapWidth: 1 } }, { colorSaturation: [0.35, 0.5], itemStyle: { gapWidth: 1, borderColorSaturation: 0.6 } } ]; } myChart.setOption( (option = { title: { text: '磁盘使用情况', left: 'center' }, tooltip: { formatter: function (info) { var value = info.value; var treePathInfo = info.treePathInfo; var treePath = []; for (var i = 1; i < treePathInfo.length; i++) { treePath.push(treePathInfo[i].name); } return [ '<div class="tooltip-title">' + formatUtil.encodeHTML(treePath.join('/')) + '</div>', '磁盘使用情况: ' + formatUtil.addCommas(value) + ' KB' ].join(''); } }, series: [ { name: '磁盘使用情况', type: 'treemap', visibleMin: 300, label: { show: true, formatter: '{b}' }, itemStyle: { borderColor: '#fff' }, levels: getLevelOption(), data: diskData } ] }) ); });
C'est le résultat que j'attendais. Entrez la description de l'image ici
Pour autant que je sache, cela ne semble pas possible pour le moment. Vous pouvez affecter la forme de la zone via l'attribut
squareRatio
, mais je ne peux pas l'aligner verticalement.Si vous n'avez pas besoin de panoramique et de zoom, vous pouvez placer un treemap pour chaque catégorie et ajuster la position en conséquence (par exemple :
gauche : '20%'
) et Tailleleft: '20%'
)和大小(例如:width: '25%'
(par exemple :largeur : '25%'
).Voici un exemple :