数据可视化 pycharts实现中国各省市地图数据可视化

2024-02-01 22:20

本文主要是介绍数据可视化 pycharts实现中国各省市地图数据可视化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自用版
数据格式如下:
在这里插入图片描述
运行效果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


import pandas as pd
from pyecharts.charts import Map, TreeMap, Timeline, Page, WordCloud
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType
import jieba
import jieba.analyse
import codecs
import math#存成csv格式
data_path =r"lyjd.csv"
df = pd.read_csv(data_path)####数据预处理
#按照·进行分隔
df0 = df['省/市/区'].str.split('·', expand=True)#存入对应的df中
df0.columns=['省', '市', '区','无']
df['省'] = df0['省']
df['市'] = df0['市']
df['区'] = df0['区']#对不同分类依据进行计数
dfCitySale = df.groupby(['市'])['销量'].sum().reset_index(name='总销量')
dfParkSale = df.groupby(['名称'])['销量'].sum().reset_index(name='景区总销量')
dfParkSale = dfParkSale.sort_values(by='景区总销量', ascending=False)## 1、	全国销量Top20的热门景点
print(dfParkSale.head(20));## 2、	全国各省市4A-5A景区数量;(景点分布情况)(可选)
#利用Map进行绘制
def c1() ->Map:#dfCityCount记录各省市4A-5A的景区数量dfCityCount = df[df['星级'].isin(['4A','5A'])].groupby(['市'])['名称'].count().reset_index(name='景区总数');data_city_count = list(zip(dfCityCount['市'],dfCityCount['景区总数']))#开始绘图china_city2 = (Map().add("景区总数",data_city_count,"china-cities",label_opts=opts.LabelOpts(is_show=False),).set_global_opts(title_opts=opts.TitleOpts(title="lxy全国各省市4A-5A景区数量"),visualmap_opts=opts.VisualMapOpts(min_=1,max_=20,is_piecewise=True),)#.render("全国各省市4A-5A景区数量.html"))return china_city2## 3、	全国各省市假期出行数据在地图上的分布;(出游分析及建议)(必做)
def c2() ->Map:data_city_sale = list(zip(dfCitySale['市'],dfCitySale['总销量']))china_city3 = (Map().add("景区销量",data_city_sale,"china-cities",label_opts=opts.LabelOpts(is_show=False),).set_global_opts(title_opts=opts.TitleOpts(title="lxy全国各省市假期出行数据在地图上的分布"),visualmap_opts=opts.VisualMapOpts(min_=1,max_=5000,is_piecewise=True),)#.render("全国各省市假期出行数据在地图上的分布.html"))return china_city3def c3() ->WordCloud :##4、全国各景点简介文本统计词云图;(景点主要特色)(必做)rows = pd.read_csv(data_path)counts = {}  # 通过键值对的形式存储词语及其出现的次数for index, row in rows.iterrows():content = row['简介']if pd.isna(content):#如果简介是空值就跳过continue#分词test_list = jieba.lcut(content, cut_all=True)for word in test_list:if len(word) == 1:  # 单个词语不计算在内continueelse:counts[word] = counts.get(word, 0) + 1  # 遍历所有词语,每出现一次其对应的值加 1items = list(counts.items())  # 将键值对转换成列表items.sort(key=lambda x: x[1], reverse=True)  # 根据词语出现的次数进行从大到小排序# for i in items:#     word, count = i#     print("{0:<5}{1:>5}".format(word, count))c = (WordCloud().add("", items, word_size_range=[20, 100]).set_global_opts(title_opts=opts.TitleOpts(title="lxy景区简介词云图"))#.render("词云图.html"))return c###利用Page函数将三张图绘制在一张页面上
def creatPage():page=Page(layout=Page.DraggablePageLayout)page.add(c1(),c2(),c3())page.render("数据可视化.html")if __name__ == "__main__":creatPage()

这篇关于数据可视化 pycharts实现中国各省市地图数据可视化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668664

相关文章

MyBatis-Plus逻辑删除实现过程

《MyBatis-Plus逻辑删除实现过程》本文介绍了MyBatis-Plus如何实现逻辑删除功能,包括自动填充字段、配置与实现步骤、常见应用场景,并展示了如何使用remove方法进行逻辑删除,逻辑删... 目录1. 逻辑删除的必要性编程1.1 逻辑删除的定义1.2 逻辑删php除的优点1.3 适用场景2.

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

Java数组动态扩容的实现示例

《Java数组动态扩容的实现示例》本文主要介绍了Java数组动态扩容的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1 问题2 方法3 结语1 问题实现动态的给数组添加元素效果,实现对数组扩容,原始数组使用静态分配

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

Python轻松实现Word到Markdown的转换

《Python轻松实现Word到Markdown的转换》在文档管理、内容发布等场景中,将Word转换为Markdown格式是常见需求,本文将介绍如何使用FreeSpire.DocforPython实现... 目录一、工具简介二、核心转换实现1. 基础单文件转换2. 批量转换Word文件三、工具特性分析优点局

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra