漏刻有时数据可视化Echarts组件开发(27):端午地图粽情之你的家乡吃甜还是吃咸?

端午地图粽情之你的家乡吃甜还是吃咸?

  • 前言
  • Echarts创意来源
  • Echarts核心代码
    • 1.引入外部文件
    • 2.构建HTML容器
    • 3.Echarts组件开发
      • 预置各省数据
      • 初始化DOM
      • 配置选项
      • geo组件
      • series组件
      • 自适应浏览器
      • 完整option选项配置代码

在这里插入图片描述

前言

中国各地对粽子的口味偏好存在一定的差异,一般可以从以下几个方面来概括:

  1. 甜咸口味的区别1:北方地区一般偏向于咸口味,如北京、天津、山西等地的粽子多为五香肉、咸蛋黄等咸味,而南方地区则更加喜欢甜味,如浙江、江苏、上海等地的粽子多为红枣、豆沙、花生等甜味。

  2. 粽子材料的不同:由于地区气候和人们口味偏好的差异,在制作粽子时材料也存在差异。如北方的肉粽主要使用猪肉配以五香料等炖制,而南方的粽子则多使用糯米和糖果作为主要材料。

  3. 形状和包法:不同地区的粽子形状和包法也存在差异。如清明节吃的藕粽,浙江温州地区的粽子外形有些尖头,北京地区的豆沙粽盘型扁担,而苏州地区的粽子则包裹用大豆、红枣、桂花浸渍的糯米。

Echarts创意来源

在网上搜索端午素材,发现吃粽子的“甜咸之争”。素材应该是PSD设计出来的,那么用echarts能不能将其实现出来呢?

在这里插入图片描述

Echarts核心代码

1.引入外部文件

  • 基于echarts,version4.0.4开发,部分语法与最新的5.x有所差异;
    <script type="text/javascript" src="js/echarts.min.js"></script>
    <script type="text/javascript" src="js/china.js"></script>

使用echarts绘制中国地图时,有以下几点需要注意:

  1. 数据格式:需要使用echarts规定的中国地图数据格式,包括省份名称、省份代码、各省份坐标等信息。可以通过echarts官网提供的geoJSON格式地图数据来实现。

  2. 区域命名:在使用echarts绘制中国地图时,省份名称应该与echarts官方提供的数据保持一致。如果数据不一致,可能会出现地图无法渲染、或者渲染不准确等情况。

  3. 地图样式:在使用echarts绘制中国地图时,需要根据实际需要调整地图的样式,比如调整省份填充颜色、字体样式等。

  4. 数据展示:如果需要在地图上展示数据,需要使用对应的数据格式与echarts支持的数据可视化方式,比如使用series-map组件等。

  5. 其他注意事项:在使用echarts绘制中国地图时,还需要注意地图数据的更新、数据精度、图表性能、完整性等方面。此外,要注意在使用地图时遵守版权和法律法规要求。

2.构建HTML容器

<div id="container"></div>
*, body {
            font-size: 12px;
        }

        body {
            height: 100%;
            margin: 0;
            background: #cbecd7 url("images/mainbg.jpg") center top;
        }

        #container {
            height: 100%;
            margin-left: 20%;
        }

3.Echarts组件开发

预置各省数据

将各省的名称、粽子的类型作为常量,其中value设置为1、2、3便于使用visualMap视觉映射组件。

    var data = [
    {name: '北京', value: 1, type: '红枣粽'},
        {name: '天津', value: 1, type: '红枣粽'},
        {name: '辽宁', value: 1, type: '蜜枣粽'},
        {name: '新疆', value: 1, type: '大枣粽'},
        {name: '山西', value: 1, type: '红枣粽'},
        {name: '青海', value: 1, type: '大枣粽'},
        {name: '宁夏', value: 1, type: '蛋黄肉粽'},
        {name: '陕西', value: 1, type: '红枣粽'},
        {name: '黑龙江', value: 1, type: '蜜枣粽'},
        {name: '河北', value: 1, type: '小枣粽'},
        {name: '内蒙古', value: 1, type: '蜜枣葡萄干粽'},
        {name: '吉林', value: 1, type: '蜜枣粽'},
        {name: '安徽', value: 2, type: '腊肉粽'},
        {name: '河南', value: 2, type: '蜜枣豆沙粽 肉粽'},
        {name: '重庆', value: 2, type: '腊肉蛋黄粽'},
        {name: '湖南', value: 2, type: '肉粽'},
        {name: '湖北', value: 2, type: '肉粽'},
        {name: '江西', value: 2, type: '肉粽'},
        {name: '甘肃', value: 2, type: '红枣粽'},
        {name: '四川', value: 2, type: '腊肉蛋黄粽'},
        {name: '西藏', value: 2, type: '大枣粽 肉粽'},
        {name: '山东', value: 2, type: '蜜枣豆沙粽'},
        {name: '江苏', value: 2, type: '蜜枣豆沙粽 肉粽'},
        {name: '浙江', value: 2, type: '蜜枣豆沙粽 肉粽'},
        {name: '上海', value: 2, type: '蜜枣豆沙粽 肉粽'},
        {name: '广东', value: 2, type: '豆沙粽 肉粽'},
        {name: '台湾', value: 2, type: '烧肉粽'},
        {name: '香港', value: 2, type: ''},
        {name: '澳门', value: 2, type: ''},
        {name: '广西', value: 3, type: '芋头鲜肉粽'},
        {name: '云南', value: 3, type: '火腿粽'},
        {name: '福建', value: 3, type: '烧肉粽'},
        {name: '海南', value: 3, type: '黑猪肉粽'},
        {name: '贵州', value: 3, type: '板栗粽'}
    ]

初始化DOM

   var myChart = echarts.init(document.getElementById("container"));

配置选项

     title: {
            text: '粽子咸甜口味分布',
            top: '10%',
            x: 'center',
            textStyle: {
                fontSize: '32',
            },
        },
        legend: {},
        visualMap: {
            show: 1,
            type: "piecewise",
            orient: 'horizontal',
            top: '17%',
            x: 'center',
            bottom: '10%',
            pieces: [
                {lte: 1, label: '甜粽'},
                {gt: 1, lte: 2, label: '咸甜通吃'},
                {gte: 3, label: '咸粽'}
            ],
            textStyle: {
                color: "#000"
            },
            inRange: {
                symbolSize: 30,
                symbol: 'circle',
                color: ['#f8d998', '#fafc91', '#b7f9a2']
            }
        },

因为没有准确的调查数据,采用预置数据进行不同省份的颜色区分,即:

pieces: [
                {lte: 1, label: '甜粽'},
                {gt: 1, lte: 2, label: '咸甜通吃'},
                {gte: 3, label: '咸粽'}
            ],
inRange: {
                symbolSize: 30,
                symbol: 'circle',
                color: ['#f8d998', '#fafc91', '#b7f9a2']
            }

geo组件

如果在series:[]组件中不使用散点、引导线等数据图层时,可以不使用该组件。

  geo: {
            type: 'map',
            map: 'china',
            label: {
                show: false,
            },
            itemStyle: {
                areaColor: 'transparent',
                borderWidth: 2,
                borderColor: '#c1a46a', // 地图边配色
                //borderType: "dotted"
            },
            emphasis: {
                label: {
                    show: false,
                },
            },
            regions: [{ // 隐藏南海诸岛
                name: '南海诸岛',
                itemStyle: {
                    opacity: 0.6,
                    label: {
                        show: false,
                    }
                }
            }]
        },

series组件

     series: [
            {
                type: 'map',
                map: 'china',
                label: {
                    show: true,
                    formatter: function (params) {
                        console.log(params.data.type)
                        return params.data.type;
                    }
                },
                itemStyle: {
                    areaColor: '#f9dd9c',
                    borderWidth: 1,
                    borderColor: '#c1a46a', // 地图边配色
                    //borderType: "dotted"
                },
                emphasis: {
                    label: {
                        show: false,
                    },
                },
                z: 100,
                data: data,
                regions: [{ // 隐藏南海诸岛
                    name: '南海诸岛',
                    itemStyle: {
                        opacity: 0.6,
                        label: {
                            show: false,
                        }
                    }
                }]
            }]

通过label调用各个省份的粽子类型:

 label: {
                    show: true,
                    formatter: function (params) {
                        console.log(params.data.type)
                        return params.data.type;
                    }
                },

自适应浏览器

//自适应浏览器;
    myChart.setOption(option);
    window.addEventListener("resize", function () {
        myChart.resize();
    });

完整option选项配置代码

var option = {
        title: {
            text: '粽子咸甜口味分布',
            top: '10%',
            x: 'center',
            textStyle: {
                fontSize: '32',
            },
        },
        legend: {},
        visualMap: {
            show: 1,
            type: "piecewise",
            orient: 'horizontal',
            top: '17%',
            x: 'center',
            bottom: '10%',
            pieces: [
                {lte: 1, label: '甜粽'},
                {gt: 1, lte: 2, label: '咸甜通吃'},
                {gte: 3, label: '咸粽'}
            ],
            textStyle: {
                color: "#000"
            },
            inRange: {
                symbolSize: 30,
                symbol: 'circle',
                color: ['#f8d998', '#fafc91', '#b7f9a2']
            }
        },
        geo: {
            type: 'map',
            map: 'china',
            label: {
                show: false,
            },
            itemStyle: {
                areaColor: 'transparent',
                borderWidth: 2,
                borderColor: '#c1a46a', // 地图边配色
                //borderType: "dotted"
            },
            emphasis: {
                label: {
                    show: false,
                },
            },
            regions: [{ // 隐藏南海诸岛
                name: '南海诸岛',
                itemStyle: {
                    opacity: 0.6,
                    label: {
                        show: false,
                    }
                }
            }]
        },
        series: [
            {
                type: 'map',
                map: 'china',
                label: {
                    show: true,
                    formatter: function (params) {
                        console.log(params.data.type)
                        return params.data.type;
                    }
                },
                itemStyle: {
                    areaColor: '#f9dd9c',
                    borderWidth: 1,
                    borderColor: '#c1a46a', // 地图边配色
                    //borderType: "dotted"
                },
                emphasis: {
                    label: {
                        show: false,
                    },
                },
                z: 100,
                data: data,
                regions: [{ // 隐藏南海诸岛
                    name: '南海诸岛',
                    itemStyle: {
                        opacity: 0.6,
                        label: {
                            show: false,
                        }
                    }
                }]
            }]
    };

    //自适应浏览器;
    myChart.setOption(option);
    window.addEventListener("resize", function () {
        myChart.resize();
    });

中国地大物博,文化习俗不同,气候天气条件有异,导致大家喜爱的粽子的口味和吃法也有区别,但无论咸甜也好、南北之分也罢,希望大家放“粽”端午,吉祥安康!

创意参考:


  1. 端午节粽子口味地图出炉 “甜咸之争”你是哪一派? ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/37059.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【openGauss数据库】---设置开机自启动openGauss数据库服务

【openGauss数据库】---设置开机自启动openGauss数据库服务 &#x1f53b; 一、openGauss 自定义服务的配置文件了解&#x1f53b; 二、设置openGauss 开机自启动&#x1f53b; 三、总结—温故知新 &#x1f448;【上一篇】 &#x1f496;The Begin&#x1f496; 点点关注&am…

css animation 鼠标移入暂停会抖动

如图 实现一个赞助商横向滚动列表墙&#xff0c; 上下两排向右滚动&#xff0c;中间向左滚动&#xff0c;鼠标移入暂停当前行。 实现&#xff1a; // 使用animation.moving {animation: move 20s linear infinite; }keyframes move {0% {}100% {transform: translateX(-50%);…

【深入浅出 Spring Security(十三)】使用 JWT 进行前后端分离认证(附源码)

使用 JWT 进行前后端分离认证 一、JWT 的简单介绍二、使用 JWT 进行安全认证后端结合SpringSecurity实现前端Vue3结合Pinia、Axios实现测试结果 一、JWT 的简单介绍 JWT 全称 Java web Token&#xff0c;在此所讲述的是 JWT 用于身份认证&#xff0c;用服务器端生成的JWT去替代…

CV多模态和AIGC的原理解析:从CLIP、BLIP到Stable Diffusion、Midjourney

前言 终于开写本CV多模态系列的核心主题&#xff1a;stable diffusion相关的了&#xff0c;为何执着于想写这个stable diffusion呢&#xff0c;源于三点 去年stable diffusion和midjourney很火的时候&#xff0c;就想写&#xff0c;因为经常被刷屏&#xff0c;但那会时间错不…

入门车载以太网

前言 近些年来,随着为了让汽车更加安全、智能、环保等,一系列的高级辅助驾驶功能喷涌而出。未来满足这些需求,就对传统的电子电器架构带来了严峻的考验,需要越来越多的电子部件参与信息交互,导致对网络传输速率,稳定性,负载率等方面都提出了更为严格的挑战。 除此以外…

34.RocketMQ之Broker端消息存储流程详解

highlight: arduino-light Broker消息存储概要设计 RocketMQ主要存储的文件包括Commitlog文件&#xff0c;ConsumeQueue文件&#xff0c;IndexFile文件。 RMQ把所有主题的消息存储在同一个文件中&#xff0c;确保消息发送时顺序写文件。 为了提高消费效率引入了ConsumeQueue消息…

云原生TDengine-v3.0部署手册

云原生TDengine-v3.0部署手册 一、管理namespace1.1 创建namespace1.2 namespaces列表 二、配置3份yaml文件2.1 tdengine3-storage-class.yaml2.2 taosd-service.yaml2.3 taosd-tdengine.yaml 三、服务部署3.1 部署StorageClass3.2 部署Service3.3 部署StatefulSet3.4 查看启动…

Flask新手教程

Flask简介 Flask是一个轻量级的可定制框架&#xff0c;使用Python语言编写&#xff0c;较其他同类型框架更为灵活、轻便、安全且容易上手。 Flask 可以很好地结合MVC模式进行开发&#xff0c;开发人员分工合作&#xff0c;小型团队在短时间内就可以完成功能丰富的中小型网站或…

微服务 云原生:微服务相关技术简要概述

后端架构演进 单体架构 所谓单体架构&#xff0c;就是只有一台服务器&#xff0c;所有的系统、程序、服务、应用都安装在这一台服务器上。比如一个 bbs 系统&#xff0c;它用到的数据库&#xff0c;它需要存储的图片和文件等&#xff0c;统统都部署在同一台服务器上。 单体架…

有PMP有没有必要换cspm?未来的发展前景如何?

最近 CSPM 证书很热门&#xff0c;CSPM 相关问题大家都很关心&#xff0c;今天本橘座就给大家全面解答一下 CSPM到底是何方神圣&#xff1f; 文章主要是解答下面几个常见问题&#xff0c;其他问题可以留言或者私信咨询我哦~ 一、什么是 CSPM证书&#xff1f;跟PMP是什么关系&a…

STM32F103驱动VL53L0X激光测距模块

STM32F103驱动VL53L0X激光测距模块 简介引脚定义STM32F103ZET6开发板与VL53L0X模块接线测试代码实验结果 简介 TOF 是飞行时间&#xff08;Tlme of Flight&#xff09;技术的缩写&#xff0c;即传感器发出经过调制的近红外光&#xff0c;遇到物体后反射&#xff0c;传感器通过…

「提高你的CSS技能」:15个重要的CSS属性详解

这篇文章介绍了15个重要的CSS属性&#xff0c;旨在提高读者的CSS知识和技能。文章以清晰的方式解释了每个属性的作用和用法&#xff0c;并提供了相应的示例代码。通过这篇文章&#xff0c;读者可以了解到一些有趣且实用的CSS属性。 1:in-range 和:out-of-range 伪类 CSS的:in…

[C++] C++特殊类设计 以及 单例模式:设计无法拷贝、只能在堆上创建、只能在栈上创建、不能继承的类, 单例模式以及饿汉与懒汉的场景...

特殊类 1. 不能被拷贝的类 注意, 是不能被拷贝的类, 不是不能拷贝构造的类. 思路就是 了解什么时候 会以什么途径 发生拷贝, 然后将路堵死. 拷贝发生一般发生在 拷贝构造 和 赋值重载 所以, 只要把类的这两个成员函数堵死, 此类就不能拷贝了 C98 在C11之前, 可以通过这种方…

python-计算两个矩阵的相似度。

余弦相似度 在pytorch中&#xff0c;有一个专门的函数用于计算相似度&#xff1a;torch.cosine_similarity() https://pytorch.org/docs/stable/nn.functional.html#cosine-similarity import torch import torch.nn.functional as F input1 torch.randn(100, 128) input2 t…

技术讨论:我心中TOP1的编程语言

欢迎关注博主 六月暴雪飞梨花 或加入【六月暴雪飞梨花】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术…

使用STM32 再实现感应开关盖垃圾桶

硬件介绍 SG90舵机 如上图所示的舵机SG90&#xff0c;橙线对应PWM信号&#xff0c;而PWM波的频率不能太高&#xff0c;大约50Hz&#xff0c;即周期0.02s&#xff0c;20ms左右。 在20ms的周期内&#xff0c;高电平占多少秒和舵机转到多少度的关系如下&#xff1a; 0.5ms-----0度…

msvcr110.dll丢失的修复教程,找不到msvcr110.dll解决办法哪个更推荐

msvcr110.dll是微软的Visual C运行库文件之一。它是Microsoft Visual Studio 2012的一部分&#xff0c;用于支持运行在Windows操作系统上使用Visual C编写的应用程序。在Windows系统中非常重要&#xff0c;如果丢失或是损坏就会造成很多程序无法启动运行。 会出现以下的报错提…

【云原生】k8s之存储卷

容器磁盘上的文件的生命周期是短暂的&#xff0c;这就使得在容器中运行重要应用时会出现一些问题。首先&#xff0c;当容器崩溃时&#xff0c;kubelet 会重启它&#xff0c;但是容器中的文件将丢失——容器以干净的状态&#xff08;镜像最初的状态&#xff09;重新启动。其次&a…

简单版本视频播放服务器V1

一直想做个家用版本的视频播放器&#xff0c;通过这个可以实现简单的电脑&#xff0c;通过浏览器就是可以访问电脑里面的视频&#xff0c;通过手机&#xff0c;平板等都是可以访问自己的视频服务了 后端代码&#xff1a; package mainimport ("fmt""io/iouti…

JMeter 中 3 种参数值的传递

目录 前言&#xff1a; (一) 从 CSV 文件读取要批量输入的变量 (二) 利用 Cookie 进行值的传递 (三) 利用正则匹配提取上一个接口的返回数据作为下个请求的输入 前言&#xff1a; 在JMeter中&#xff0c;参数值的传递是非常重要的&#xff0c;因为它允许你在测试过程中动态…