【ECharts】数据可视化:饼图与柱状图的绘制

通过对ECharts官网入门示例中的柱状图进行修改,实现基于同一份数据在一张图上同时绘制饼图与柱状图的效果。

数据

衬衫羊毛衫雪纺衫裤子高跟鞋袜子
52036101020

结果

在这里插入图片描述

思路

刚开始做的时候对 ECharts 的语法以及数据的组织方式并不理解,因为这次主要是为了绘制出饼图和柱状图,所以着重看了这两种图的代码,然后在一起组织的时候经常因为我对语法不熟悉而出错,不过尝试了好几次之后也成功了,但是肯定是不对的,因为饼图和柱状图我使用了独立的数据,按理说这两个图共享一份数据才是正确的。
于是我通过仔细查阅官方教程的基础概念概览那一篇才有了思路,通过将数据存放在dataset中,然后两个图分别从这里取数据即可。
通过这一个简单的入门小例子对 ECharts 的基础概念有了一定的了解,同时也深刻明白了官方文档的重要性,以后一定要仔细阅读文档。

源代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ECharts Pie and Bar</title>
    <!-- 引入 echarts.min.js -->
    <script src="https://cdn.staticfile.org/echarts/4.8.0/echarts.min.js"></script>
</head>

<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 1200px;height:600px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        // 指定图表的配置项和数据
        var option = {
            title: {
                text: '商品销量',
                left: "center",
                textStyle: {
                    fontSize: 30,
                    color: "rgba(116, 10, 10, 1)",
                    fontWeight: "bolder"
                }
            },
            tooltip: {},
            legend: {
                left: '8%',
                top: '10%'
            },
            //右上角的功能小按钮
            toolbox: {
                show: true,
                feature: {
                    dataView: { readOnly: false },
                    magicType: { type: ['line', 'bar'] },
                    restore: {},
                    saveAsImage: {}
                }
            },
            xAxis: {
                type: 'category',
                name: '商品',
                nameTextStyle: {
                    fontSize: 15
                }
            },
            yAxis: {
                type: 'value',
                name: '销量',
                nameTextStyle: {
                    fontSize: 15
                }
            },
            grid: {
                left: '50%',
                top: '15%'
            },
            //系列数据从 dataset 中取
            dataset: {
                source: [
                    ['衬衫', 5],
                    ['羊毛衫', 20],
                    ['雪纺衫', 36],
                    ['裤子', 10],
                    ['高跟鞋', 10],
                    ['袜子', 20]
                ]
            },
            series: [{
                type: 'pie',
                center: ['25%', '50%'],
                radius: '50%',
                // 数据从 dataset 中取,encode 中的数值是 dataset.source 的维度 index (即第几列)
                encode: { itemName: 0, value: 1 }
            },
            {
                type: 'bar',
                encode: { x: 0, y: 1 }
            }]
        };
        // 使用刚指定的配置项和数据显示图表
        myChart.setOption(option);
    </script>
</body>

</html>

直接将代码复制到文本编辑器中,保存为以.html结尾的文件即可通过浏览器打开查看效果。
:想要查看效果需要联网,因为echarts.min.js文件是通过 CDN 在线引入的。

回答: 前端WebSocket的原理是通过在客户端服务器之间建立一个持久的双向通信连接。首先,客户端通过发送一个HTTP请求到服务器来发起WebSocket握手。这个握手请求中包含一些特殊的HTTP头部,比如UpgradeConnection等。服务器如果支持WebSocket协议,会响应一个101 Switching Protocols的状态码,表示握手成功。接下来,客户端服务器之间的连接就变成了WebSocket连接,双方可以直接通过发送WebSocket消息进行实时的双向通信。WebSocket的消息格式是基于帧的,每个消息都由一个或多个帧组成。客户端服务器可以通过发送不同类型的帧来实现不同的功能,比如发送文本数据、二进制数据等。通过WebSocket,前端可以实现实时的消息推送、实时更新等功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [webSocket详解:技术原理+前后端实现](https://blog.youkuaiyun.com/zhang2312600_a/article/details/127517384)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [看完让你彻底理解 WebSocket 原理](https://blog.youkuaiyun.com/asd051377305/article/details/108066378)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [一文吃透 WebSocket 原理](https://blog.youkuaiyun.com/sshuai131400/article/details/121339044)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值