怎么用Python的Pyecharts绘制图像
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容介绍了"怎么用Python的Pyecharts绘制图像"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2025年01月19日怎么用Python的Pyecharts绘制图像
本篇内容介绍了"怎么用Python的Pyecharts绘制图像"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
前言:
Echarts
是百度开源的一款数据可视化 JS 工具,数据可视化类型十分丰富,但是得通过导入 js 库在 Java Web 项目上运行。
作为工作中常用 Python 的选手,不能不知道这款数据可视化插件的强大。那么,能否在 Python 中也能用到 Echarts 的功能呢?寻找中惊喜地发现了 pyecharts
,只需在python中安装该模块即可使用。
安装:
常用的pip安装包一键安装pyecharts
pyecharts安装命令:
ython -m pip install pyecharts
Python + pyecharts具体应用
结合工作中的项目数据,我选择了 test 项目需求中 hotel_code_new 为 CNSZVS_002,CWSWS_003
对应2019年12个月指标为 RNs 的数据做可视化展示与分析。
1.Hive数据库查询sql
hive_sql内容如下:
# sql中所使用的部分语法为hive sql中常规的语法,与mysql有所不同,请注意。select rrrd1.hotel_code_new as hotel_code_new ,dda.natural_date as natural_date ,nvl(rrrd.room_nights, 0) as room_nights from ( select distinct substr(natural_dt,1,7) as natural_date from dws.dws_test_date_calendar where dt_year='2019' )dda left join (select 'CNSZVS_002' hotel_code_new UNION all select 'CWSWS_003' hotel_code_new )rrrd1 left join (select hotel_code_new ,substr(stay_date,1,7) as stay_date ,sum(number_of_room_nights) as room_nights from dwm.dwm_test_resvs_rom_daily_df where dt='2021-10-24' and hotel_code_new in(CNSZVS_002', 'CWSWS_003') and resv_status in('CHECKEDSSSIN','CHECKEDSSSOUT') and substr(stay_date,0,4) = '2019' group by hotel_code_new,substr(stay_date,1,7) )rrrd on dda.natural_date = rrrd.stay_date and rrrd1.hotel_code_new=rrrd.hotel_code_new order by rrrd.hotel_code_new;
2.Python代码实现—柱状图
from impala.dbapi import connectimport warnings#数据仓库数据获取准备def hive_connect(sql): warnings.filterwarnings('ignore') config_hive_beta = { 'host': '10.7.0.12', #hive的host地址 'port': 10000, #hive的端口号 'user': 'hive', #hive的username 'password': 'hive', #hive的password 'database': 'tmp', #hive中需要查询的数据库名 'auth_mechanism': 'PLAIN' #hive的hive-site.xml配置文件中获取 } conn = connect(**config_hive_beta) cursor = conn.cursor() cursor.execute(sql) hive_all_data = cursor.fetchall() return hive_all_data# all_data = hive_connect(hive_sql)# 通过调用hive_connect方法获取到的数据库查询结果数据如all_data列表所示all_data = [('CNSZVS_002', '2019-01', 0), ('CNSZVS_002', '2019-02', 0), ('CNSZVS_002', '2019-03', 0), ('CNSZVS_002', '2019-04', 0), ('CNSZVS_002', '2019-05', 0), ('CNSZVS_002', '2019-06', 2353), ('CNSZVS_002', '2019-07', 2939), ('CNSZVS_002', '2019-08', 5148), ('CNSZVS_002', '2019-09', 3850), ('CNSZVS_002', '2019-10', 4973), ('CNSZVS_002', '2019-11', 5467), ('CNSZVS_002', '2019-12', 4742), ('CWSWS_003', '2019-01', 5914), ('CWSWS_003', '2019-02', 4434), ('CWSWS_003', '2019-03', 6003), ('CWSWS_003', '2019-04', 6611), ('CWSWS_003', '2019-05', 6586), ('CWSWS_003', '2019-06', 5840), ('CWSWS_003', '2019-07', 6624), ('CWSWS_003', '2019-08', 7001), ('CWSWS_003', '2019-09', 5792), ('CWSWS_003', '2019-10', 6898), ('CWSWS_003', '2019-11', 6944), ('CWSWS_003', '2019-12', 5404)]# 从pyecharts模块导入柱状图-Barfrom pyecharts import Bar# 设置横轴行名,这里使用12个月份的英文简称columns = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]# 分别新建2个空list用于存储每个月份对应的RNs的值CNSZVS_002 = []CWSWS_003 = []for i in all_data: if i[0] == 'CNSZVS_002': CNSZVS_002.append(i[2]) elif i[0] == 'CWSWS_003': CWSWS_003.append(i[2]) else: pass# 设置柱状图的主标题与副标题bar = Bar("柱状图", "Test需求-2019年的RNs")# 添加柱状图的数据及配置项-求平均值、最大值、最小值bar.add("CNSZVS_002", columns, CNSZVS_002, mark_line=["average"], mark_point=["max", "min"])bar.add("CWSWS_003", columns, CWSWS_003, mark_line=["average"], mark_point=["max", "min"])# 在本py文件同级目录下生成名为render.html的本地文件(默认为.html文件)bar.render()# 也可设置成指定的路径用于保存html文件#bar.render(r"D:bar_render.html")
柱状效果图展示:
生成的柱状效果图是html
格式的,可以在浏览器中打开查看,在浏览器中支持下载成图片格式到本地,并且点击图例即可置灰对应的图例,同时隐藏图例对应的柱状图数据,
如下图所示:
3.Python代码实现—饼状图
注意:数据准备部分的代码与柱状图一样,这里只展示饼状图特有的代码
# 从pyecharts模块中导入饼图Piefrom pyecharts import Pie# 设置主标题与副标题,标题设置居中,设置宽度为1000pie = Pie("饼状图", "Test需求-2019年的RNs", title_pos='left', width=1000)# 使用add导入数据,设置坐标位置为【20,50】,上方的colums选项取消显示pie.add("CNSZVS_002", columns, CNSZVS_002, center=[20, 50], is_legend_show=True)# 使用add导入数据,设置坐标位置为【75,50】,上方的colums选项正常显示pie.add("CWSWS_003", columns, CWSWS_003, center=[75, 50], is_legend_show=False, is_label_show=True)# 保存图表pie.render()
饼状效果图展示——隐藏所占百分比
饼状效果图展示——展示所占百分比
4.Python代码实现—箱型图
# 从pyecharts模块导入箱型图Boxplotfrom pyecharts import Boxplotboxplot = Boxplot("箱型图", "Test需求-2019年的RNs")x_axis = ['CNSZVS_002', 'CWSWS_003']y_axis = [CNSZVS_002, CWSWS_003]# prepare_data方法可以将数据转为嵌套的 [min, Q1, median (or Q2), Q3, max]yaxis = boxplot.prepare_data(y_axis)boxplot.add("2019年RNs统计", x_axis, yaxis)boxplot.render()
箱型图效果展示:
5.Python代码实现—折线图
from pyecharts import Lineline = Line("折线图", "Test需求-2019年的RNs")# is_label_show属性是设置上方数据是否显示line.add("CNSZVS_002", columns, CNSZVS_002, is_label_show=True)line.add("CWSWS_003", columns, CWSWS_003, is_label_show=True)line.render()
折线图效果展示:
6.Python代码实现—雷达图
from pyecharts import Radarradar = Radar("雷达图", "Test需求-2019年的RNs")# 由于雷达图传入的数据得为多维数据,需要将list再进行list转换一次CNSZVS_002 = [CNSZVS_002]CWSWS_003 = [CWSWS_003]# 设置column的最大值,为了雷达图更为直观,这里的月份最大值设置依据真实数据的值来设置,因此各个月份有所不同schema_diff = [ ("Jan", 7000), ("Feb", 5000), ("Mar", 6500), ("Apr", 7000), ("May", 7000), ("Jun", 6200), ("Jul", 6800), ("Aug", 7200), ("Sep", 6000), ("Oct", 7300), ("Nov", 7500), ("Dec", 6000)]# 传入坐标radar.config(schema_diff)radar.add("CNSZVS_002", CNSZVS_002)# 一般默认为同一种颜色,这里为了便于区分,需要设置item的颜色radar.add("CWSWS_003", CWSWS_003, item_color="#1C86EE")radar.render()
雷达效果图展示:
7.Python代码实现—散点图
from pyecharts import Scatterscatter = Scatter("散点图", "Test需求-2019年的RNs")# xais_name是设置横坐标名称,这里由于显示问题,还需要将y轴名称与y轴的距离进行设置scatter.add("CWSWS_003&CNSZVS_002 RNs的散点分布", CNSZVS_002, CWSWS_003, xaxis_name="CNSZVS_002", yaxis_name="CWSWS_003", yaxis_name_gap=40)scatter.render()
散点图效果展示:
"怎么用Python的Pyecharts绘制图像"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
数据
柱状
代码
效果
需求
效果图
文件
雷达
月份
模块
可视化
最大
内容
图例
坐标
数据库
最大值
标题
线图
项目
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
如何创建课题组共用的文献数据库
定格动画软件开发
生活中的数据库应用
网络技术最新发展
北京亿众互联网科技
京东方软件开发工程师面试经
北京 软件开发合同
火狐浏览器代理服务器情景模式
软件开发实验报告山东建筑大学
互联网金融科技领域
查询数据库中所有表数据量大小
广州公安网络安全局
网络安全知识好处
美国网络安全工程师收入
ipfs服务器系统盘符
厦门网络安全管理员招聘
微官网 服务器
服务器ftp允许ip地址范围
品质优良的服务器租用
连接杀手2服务器
北京亿众互联网科技
网络中心软件开发
有什么小型软件开发公司
网络安全研发工
服务器主要服务的功能是
软件开发 英语能力
网络安全法贯彻落实情况
方舟服务器管理器怎么开五通
硬件网络技术工程师
卫生网络安全信息化领导小组