[小白学数据分析-案例1]用pyecharts绘制地图热力图

目录

一、背景:

二、应用案例

1)数据源:(excel文件路径:F:\python数据\寒潮来时冬季衣服热卖地区统计1.xlsx)

2)代码部分和修改过程:*引用自大佬的代码(略做修改)


一、背景:

        工作业务上需要分析寒潮来时各地区销售数量情况,因为刚接触python,没有基础,所以在站内搜了如何“绘制地图热力图”,看到了大佬的文章,就进行了这一次尝试。

        以下记录我在引用大佬代码的时候遇到的问题以及解决方法,单纯做一个学习笔记,大家看个乐。期间还有一些bug的原因还没找到,如果有知道的可以评论区指导一下,感谢!!

        大佬(小弥芔)的文章链接如下:Python使用pyecharts库制作地图热力图_小弥芔的博客-CSDN博客_pyecharts热力图

二、应用案例

1)数据源:(excel文件路径:F:\python数据\寒潮来时冬季衣服热卖地区统计1.xlsx)

[小白学数据分析-案例1]用pyecharts绘制地图热力图_第1张图片

2)代码部分和修改过程:*引用自大佬的代码(略做修改)

大佬的源代码:

# -*- coding: UTF-8 -*-
import numpy as np
import pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts
 
 
# 读取excel中数据
df = pd.read_excel(r"D:\Sone\CODE\地图热点分布.xlsx",
    index_col=None,
    header=0,
    skiprows=[1],
    converters={'City':str},
    usecols=['City','GMV'])
 
 
# 地图热力图
# 将pandas.DataFrame格式的数据,每一行转为元组tuple,所有数据以列表list输出
data=df.apply(lambda x:tuple(x),axis=1).values.tolist()
gmv=df['GMV'].values
_max =max(gmv)
_min =min(gmv)
 
 
map_ = Map()
map_.add("", data, maptype="china", zoom=1)
map_.set_global_opts(
 
    title_opts=opts.TitleOpts(title="Market GMV by city",
                              pos_right="center",
                              pos_top="5%"),
                              
    visualmap_opts=opts.VisualMapOpts(max_=_max,
                                      min_=_min,
                                      range_color=["#F5EFE7","#CCAD81"]
                                     ),
    )
map_.render("Market GMV by city.html")

 修改过程:

        ①数据源修改,usecols函数提取的内容修改

#源代码
# 读取excel中数据
df = pd.read_excel(r"D:\Sone\CODE\地图热点分布.xlsx",
    index_col=None,
    header=0,
    skiprows=[1],
    converters={'City':str},
    usecols=['City','GMV'])


-----------------------------------------------------------

修改后的代码
# 读取excel中数据
df = pd.read_excel(r"F:\python数据\寒潮来时冬季衣服热卖地区统计1.xlsx",
    index_col=None,
    header=0,
    skiprows=[1],
    converters={'City':str}, 
    usecols=['City','销售数量'])

print(df)

#!!但是运用结果是空,经过测试发现是因为usecols这个函数的参数错了,但是不知道怎么用字符串参数提取了,就直接改成索引提取了(当时想法:先把代码跑起来,函数参数的问题后再研究)

-----------------------------------------------------------

#直接改成索引提取,修改后的代码
# 读取excel中数据
df = pd.read_excel(r"F:\python数据\寒潮来时冬季衣服热卖地区统计1.xlsx",
    index_col=None,
    header=0,
    skiprows=[1],
    converters={'City':str}, 
    usecols=[0,1])

print(df)

#这回跑出来了

                 结果如下:

[小白学数据分析-案例1]用pyecharts绘制地图热力图_第2张图片

         ②对map函数下的参数进行修改

#大佬的源代码↓↓↓
# 地图热力图
# 将pandas.DataFrame格式的数据,每一行转为元组tuple,所有数据以列表list输出
data=df.apply(lambda x:tuple(x),axis=1).values.tolist()
gmv=df['GMV'].values
_max =max(gmv)
_min =min(gmv)
 
 
map_ = Map()
map_.add("", data, maptype="china", zoom=1)
map_.set_global_opts(
 
    title_opts=opts.TitleOpts(title="Market GMV by city",
                              pos_right="center",
                              pos_top="5%"),
                              
    visualmap_opts=opts.VisualMapOpts(max_=_max,
                                      min_=_min,
                                      range_color=["#F5EFE7","#CCAD81"]
                                     ),
    )
map_.render("Market GMV by city.html")

-----------------------------------------------------------------------------

#修改后的代码
# 地图热力图
# 将pandas.DataFrame格式的数据,每一行转为元组tuple,所有数据以列表list输出
data=df.apply(lambda x:tuple(x),axis=1).values.tolist()
gmv=df['销售数量'].values
_数值max =max(gmv)
_数值min =min(gmv)
 
 
map_ = Map()
map_.add("", data, maptype="china", zoom=1)
map_.set_global_opts(
 
    title_opts=opts.TitleOpts(title="寒潮来时冬季衣服热卖地区统计",
                              pos_right="center",
                              pos_top="5%"),
                              
    visualmap_opts=opts.VisualMapOpts(max_=_max,
                                      min_=_min,
                                      range_color=["#F5EFE7","#CCAD81"]
                                     ),
    )
map_.render("Market GMV by city.html")

#但是最后导出的结果不显示颜色,应该是visualmap_opts这个的参数错了。再查,发现是_数值max、_数值min这两个变量数据类型是str

-----------------------------------------------------------------------------

#再次修改代码,改变数据类型
# 地图热力图
# 将pandas.DataFrame格式的数据,每一行转为元组tuple,所有数据以列表list输出
data=df.apply(lambda x:tuple(x),axis=1).values.tolist()
gmv=df['销售数量'].values
_数值max =int(max(gmv))
_数值min =int(min(gmv))

print(_max)
print(_min)
 
map_ = Map()
map_.add("", data, maptype="china", zoom=1)
map_.set_global_opts(
 
    title_opts=opts.TitleOpts(title="Market GMV by city",
                              pos_right="center",
                              pos_top="5%"),
                              
    visualmap_opts=opts.VisualMapOpts(
                                      max_=_数值max ,
                                      min_=_数值min ,
                                      range_text=[_max ,_min ],
                                      range_color=["#F5EFE7","#CCAD81"]
                                     ),
    )
map_.render("Market GMV by city.html")

 过程中的问题:导出的结果不显示视觉映射[小白学数据分析-案例1]用pyecharts绘制地图热力图_第3张图片

 解决后的最后呈现效果

 [小白学数据分析-案例1]用pyecharts绘制地图热力图_第4张图片

END

后续相关的知识再更新..

你可能感兴趣的:([小白学数据分析-案例],数据分析,python,pandas)