当前位置:   article > 正文

数据可视化之通过pyecharts建立可视化用户登录时间热力图_利用pyecharts绘制某门户网站模块访问的热力图,具体访问量数据自拟

利用pyecharts绘制某门户网站模块访问的热力图,具体访问量数据自拟

前言

首先欢迎大家来看我写的博客,博客的主要内容为使用pyecharts则可以使用python来调用里面的API,达到可视化的效果。希望可以和大家一起进步,无论是赞同我还是批评我,也无论你的赞同与批评是深思熟虑还是一时兴起的,我都一并欢迎。这是我第一次写博客,有什么问题,还望大家指出,不吝赐教,谢谢!

一、pyecharts的介绍和使用

1、pyecharts介绍

pyecharts
Echarts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts诞生了。

2、安装pyecharts

windows中搜索anaconda prompt打开,运行下述代码:

pip install pyecharts

或使用清华镜像下载(建议使用这个):

pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple

二、代码实现

1、导入库

代码如下:

#导入库
import pandas as pd  
  • 1
  • 2

2、读取数据

代码如下:

#读取数据
data = pd.read_csv(r'login.csv',encoding='gbk')  
  • 1
  • 2

3、使用pandas.to_datetime将参数转换为日期时间

代码如下:

#将参数转换为日期时间并输出结果
data['时间对象序列']=pd.to_datetime(data['login_time'])
data
  • 1
  • 2
  • 3

运行结果图:
387144 rows × 4 columns

4、加工时间数据

代码如下:

data['星期'] = data['时间对象序列'].dt.dayofweek+1
data['小时数'] = data['时间对象序列'].agg(lambda x:x.hour)
data
  • 1
  • 2
  • 3

运行结果图:
在这里插入图片描述
注:.dt.dayofweek+1 返回:系列或索引

5、分组聚合求各个星期各个小时的用户总数

代码如下:

result = data.groupby(by=['小时数','星期'])['user_id'].count().rename('用户总数')
result
  • 1
  • 2

运行结果图:
在这里插入图片描述

6、构造热力图的横轴、纵轴标签以及值数据结构

代码如下:

# 横轴、纵轴数据构造
x_list = [str(i+1) for i in range(24)]
y_list = ['星期一','星期二','星期三','星期四','星期五','星期六','星期日']
# 值数据构造
hour_list = [i+1 for i in range(24)]
xingqi_list = [i+1 for i in range(7)]
value_list = []
for i in range(len(hour_list)):
    for j in range(len(xingqi_list)):
        try:
            value_list.append([i,j,int(result[hour_list[i],xingqi_list[j]])])
        except Exception as e:
#             print(e)
            value_list.append([i,j,0])
value_list
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

运行结果图:
在这里插入图片描述

7、画热力图

代码如下:

import pyecharts.options as opts
from pyecharts.charts import HeatMap
c = (
    HeatMap(init_opts=opts.InitOpts(width="1000px", height="400px"))
    .add_xaxis(xaxis_data=x_list)
    .add_yaxis(
        series_name="登录人数",
        yaxis_data=y_list,
        value=value_list,
        label_opts=opts.LabelOpts(
                                is_show=True, 
                                color="black", 
                                position="inside", 
        ),
    )
    .set_global_opts(
        legend_opts=opts.LegendOpts(is_show=False),
        xaxis_opts=opts.AxisOpts(
            type_="category",
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
            ),
        ),
        yaxis_opts=opts.AxisOpts(
            type_="category",
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
            ),
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=0, max_=5000, 
            orient="horizontal",
            pos_left="center",
            range_color = ['#ff6666','#ccccff','#ffcccc']
        ),
    )
)
c.render_notebook()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

运行结果图:
在这里插入图片描述

  • opts:各种配置项
  • HeatMap:热图

三、总结

这次Python实训不仅是对往期学习的巩固和加深,更是一次“温故知新”的过程,在老师的带领下,对现有知识又获得了新的认识,对于之前学过的Python的基本数据类型、程序的控制结构、函数的代码复用、正则表达式、组合数据类型、文件和数据格式化等,都有了新的认识与理解,并深刻感受到Python简洁却强大、简单却专业的强大魅力。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/537109
推荐阅读
相关标签
  

闽ICP备14008679号