在本关卡中,我们将学习如何使用Python的Pyecharts库进行数据可视化,特别是构建大屏展示。数据可视化是数据分析中的重要环节,它能够帮助我们更直观地理解数据分布、趋势和模式。在这个例子中,我们将展示2020年3月各省的GMV(总销售额)数据。 我们需要导入必要的库,包括`psycopg2`用于连接PostgreSQL数据库,`pandas`用于数据处理,以及`pyecharts`用于数据可视化。在Python中,我们通常使用`import`语句来引入外部库。 ```python import psycopg2 import pandas as pd import pyecharts.options as opts import numpy as np ``` 接着,定义一个名为`get_table`的函数,用于连接数据库并执行SQL查询。这个函数接收SQL语句以及数据库连接的参数(IP、端口、数据库名、用户名和密码),并返回查询结果为DataFrame格式。在函数内部,我们创建了数据库连接,设置编码为UTF-8,然后创建游标执行SQL,获取数据,最后将数据转换为DataFrame并返回。 ```python def get_table(sql, ip, port, database, user, password): # 连接数据库,设置编码 connection = psycopg2.connect(host=ip, port=port, database=database, user=user, password=password) connection.set_client_encoding('utf-8') # 创建游标,执行SQL,获取数据 cursor = connection.cursor() cursor.execute(sql) rows = cursor.fetchall() # 关闭游标和数据库连接,将数据转化为DataFrame cursor.close() connection.close() df = pd.DataFrame(rows, index=df.index+1) return df ``` 为了获取2020年3月的GMV数据,我们编写了一个SQL查询,它从订单、地址和日期维度表中选取数据,按省份进行分组并计算总销售额。 ```python sql1 = ''' SELECT ad.province AS province, SUM(o.actual_price) AS GMV FROM target.orders o, target.address_dimension ad, target.date_dimension dd WHERE o.address_key = ad.address_key AND o.add_date = dd.date_key AND dd.year = 2020 AND dd.month = 3 GROUP BY ad.province; ''' ``` 调用`get_table`函数执行SQL并存储结果: ```python df1 = get_table(sql1, '114.116.200.18', '8000', 'tsz_demo', 'dbadmin', 'Dws@123456') ``` 接下来,我们需要对数据进行处理,将列名设置为`province`和`GMV`,并查看前5条数据以确认数据是否正确。 ```python df1.columns = ['province', 'GMV'] df1.head(5) ``` 为了绘制玫瑰图,我们需要将数据准备成Pyecharts可用的格式。我们创建两个列表,`x`存储省份名称,`y`存储销售额(以百万元为单位)。 ```python x = list(df1['province'].values) y = [int(x/10000)/100 for x in df1['GMV'].values] ``` 现在,我们可以使用`pyecharts`的`Pie`类创建玫瑰图。需要注意的是,Pyecharts中的`add`方法用于添加图表系列,我们需要提供系列名称、数据对等参数。 ```python from pyecharts.charts import Pie pie_2020_MAR = ( Pie() .add("", [(province, gmv) for province, gmv in zip(x, y)], rose_type="radius", is_stack=True) .set_global_opts(title_opts=opts.TitleOpts(title="2020年3月各省GMV玫瑰图")) ) ``` 我们需要渲染并显示图表,但这部分代码没有给出。通常,我们使用`render`方法将图表保存为HTML文件或者直接在Jupyter notebook中显示。 ```python # pie_2020_MAR.render("2020_3_GMV_roses.html") ``` 此外,关卡中还提到了在中国地图上绘制热力图,这部分需要从SQL语句开始,直到`render`前的所有代码。但在这里,我们只关注了玫瑰图的制作,未涉及地图热力图的具体实现。 总结一下,本关卡主要介绍了如何使用Pyecharts进行数据可视化,包括连接数据库、执行SQL、处理数据以及绘制玫瑰图。掌握这些技能后,可以有效地将复杂的数据转化为易于理解的图形,提升数据分析的效果。
剩余23页未读,继续阅读
- 粉丝: 19
- 资源: 320
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于java+ssm+mysql的数字家庭网站开题报告.docx
- 基于java+ssm+mysql的物流配送管理系统开题报告.doc
- 基于java+ssm+mysql的物流信息管理系统开题报告.docx
- 深度学习入门学习材料.pdf
- autocomplete-redis 是一个基于 redis 的类似 quora 的自动完成功能 .zip
- 类脑计算与计算神经科学简介:理论概述与技术实现
- Bitalostored是一个高性能的分布式存储系统,核心引擎基于自研的bitalosdb,兼容Redis协议 .zip
- 野生蓝莓产量预测数据集.zip
- 2024-12-03-085125_138276.mp3
- C++ Redis 客户端.zip
- 期末填空题复习.zip
- C++实现redis全球锁(Redlock基于Redis的分布式锁C++实现).zip
- Catbox 的 Redis 适配器.zip
- Mysql基础-数值函数与运算符.pdf
- 质子交换膜(PEM)燃料电池数据集.zip
- CLI 中的基于 Redis 文本的 UI 客户端.zip
评论0