利用echarts-gl实现3d柱状图的可视化

准备工作

  1. 需要用到的js文件
  2. 需要用到的数据

上代码

<!-- 
<body>
 -->
<html>

<head>
    <meta charset='utf-8' />
    <style>
        #map {
            margin: 0 auto;
            width: 100%;
            height: 100%
        }

        html,
        body {
            margin: 0;
            overflow: hidden;
            background: #fff;
            width: 100%;
            height: 100%;
            position: absolute;
            top: 0;
        }
    </style>
</head>

<body>
    <div id='map'></div>
    <script src="jquery.min.js"></script>
    <script src="include-mapboxgl.js"></script>
    <script src="echarts.min.js"></script>
    <script src="echarts-gl.min.js"></script>
    <script type="text/javascript">
        var myChart = echarts.init(document.getElementById('map'));

        $.getJSON('ShanghaiBuildingPrice.json', function (linedata) {
            mapboxgl.accessToken = '你自己mapbox的accessToken';
            myChart.setOption({

                visualMap: {
                    show: false,
                    calculable: true,
                    realtime: false,
                    inRange: {
                        color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
                    },
                    outOfRange: {
                        colorAlpha: 0
                    },
                    max: linedata[1]
                },
                toolBox: {
                    feature: {
                        dataZoom: {
                            show: true,
                        }
                    }
                },
                mapbox: {
                    center: [121.4693, 31.123070],
                    zoom: 10,
                    pitch: 50,
                    bearing: -10,
                    style: 'mapbox://styles/mapbox/light-v9',
                    boxHeight: 50,
                    // altitudeScale: 3e2,
                    postEffect: {
                        enable: true,
                        SSAO: {
                            enable: true,
                            radius: 2,
                            intensity: 1.5
                        }
                    },
                    light: {
                        main: {
                            intensity: 1,
                            shadow: true,
                            shadowQuality: 'high'
                        },
                        ambient: {
                            intensity: 0.
                        },
                        ambientCubemap: {
                            texture: 'ShanghaiBuildingPrice.hdr',
                            exposure: 1,
                            diffuseIntensity: 0.5
                        }
                    },

                },

                series: [{
                    type: 'bar3D',
                    roam: true,
                    shading: 'realistic',
                    coordinateSystem: 'mapbox',
                    barSize: 0.2,
                    silent: true,
                    data: linedata[0]
                }]
            });
            //获取mapbox对象
            var mapbox = myChart.getModel().getComponent('mapbox3D').getMapbox();
            mapbox.addControl(new mapboxgl.NavigationControl(), 'top-left');

        });

    </script>
</body>

</html>

3dbar实现效果图
3dbai效果图
参考地址 https://iclient.supermap.io/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts是一个基于JavaScript的开源可视化库,用于构建交互式的图表和数据可视化。它支持多种图表类型,包括饼图、柱状图、折线图等。而ECharts-GL是在ECharts的基础上扩展而来,专门用于创建基于WebGL3D图表。 要实现3D饼图,可以使用ECharts-GL库。首先,你需要引入ECharts-GL库的脚本文件。然后,创建一个容器元素,用于显示图表。接下来,通过配置项来定义饼图的数据和样式。最后,使用ECharts-GL提供的API将配置项应用到容器元素中,即可生成3D饼图。 以下是一个简单的示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>3D饼图示例</title> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-gl/dist/echarts-gl.min.js"></script> </head> <body> <div id="chart" style="width: 600px; height: 400px;"></div> <script> // 初始化echarts实例 var myChart = echarts.init(document.getElementById('chart')); // 配置项 var option = { series: [{ type: 'pie3D', data: [ {value: 335, name: '直接访问'}, {value: 310, name: '邮件营销'}, {value: 234, name: '联盟广告'}, {value: 135, name: '视频广告'}, {value: 1548, name: '搜索引擎'} ] }] }; // 使用配置项生成图表 myChart.setOption(option); </script> </body> </html> ``` 以上代码中,我们引入了EChartsECharts-GL的脚本文件,并创建了一个id为"chart"的容器元素。通过配置项中的series属性,我们定义了一个饼图的数据和样式。最后,使用setOption方法将配置项应用到容器元素中,即可生成3D饼图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值