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

自用版

数据格式如下:

运行效果如下:


python 复制代码
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_city3

def 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:  # 单个词语不计算在内
                continue
            else:
                counts[word] = counts.get(word, 0) + 1  # 遍历所有词语,每出现一次其对应的值加 1
     
    items = 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()
相关推荐
互联网中的一颗神经元5 分钟前
小白python入门 - 9. Python 列表2 ——从基础操作到高级应用
java·开发语言·python
Serendipity_Carl39 分钟前
爬虫数据清洗可视化案例之全球灾害数据
爬虫·python·pycharm·数据可视化·数据清洗
B站计算机毕业设计之家40 分钟前
计算机视觉:YOLO实现目标识别+目标跟踪技术 pyqt界面 OpenCV 计算机视觉 深度学习 计算机(建议收藏)✅
python·opencv·yolo·计算机视觉·目标跟踪·口罩识别
~~李木子~~1 小时前
Matplotlib 数据可视化基础测试题
信息可视化·matplotlib
AI小云2 小时前
【Python高级编程】类属性与类方法
人工智能·python
B站计算机毕业设计之家2 小时前
深度学习:YOLOv8人体行为动作识别检测系统 行为识别检测识系统 act-dataset数据集 pyqt5 机器学习✅
人工智能·python·深度学习·qt·yolo·机器学习·计算机视觉
青云交3 小时前
Java 大视界 -- Java 大数据在智能建筑能耗监测与节能策略制定中的应用
数据分析·数据存储·数据可视化·1024程序员节·能耗监测·java 大数据·智能建筑
墨利昂3 小时前
Pytorch常用API(ML和DL)
人工智能·pytorch·python
SunnyDays10113 小时前
Python 裁剪 PDF 教程:轻松裁剪页面并导出为图片
python·pdf裁剪·裁剪pdf页面·裁切pdf
JustNow_Man3 小时前
Cline插件中clinerules的选择机制
python