Python 数据可视化神器Pyecharts绘制图像练习

目录
  • 前言:
  • 1.Hive数据库查询sql
  • 2.Python代码实现—柱状图
  • 3.Python代码实现—饼状图
  • 4.Python代码实现—箱型图
  • 5.Python代码实现—折线图
  • 6.Python代码实现—雷达图
  • 7.Python代码实现—散点图

前言:

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 connect
import 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模块导入柱状图-Bar
from 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模块中导入饼图Pie
from pyecharts import Pie
# 设置主标题与副标题,标题设置居中,设置宽度为1000
pie = 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模块导入箱型图Boxplot
from pyecharts import Boxplot
boxplot = 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 Line
line = 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 Radar
radar = 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 Scatter
scatter = 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()

散点图效果展示:

总结:

  • 准备符合要求的数据及其格式
  • 导入对应图表所使用的包
  • add()方法:主要方法,用于添加图表的数据和设置各种配置项
  • render()方法:用于保存生成的图表

到此这篇关于Python 数据可视化神器Pyecharts绘制图像练习的文章就介绍到这了,更多相关Python 数据可视化神器Pyecharts内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python使用pyecharts绘制世界地图,省级地图,城市地图实例详解

    目录 1.世界地图绘制演示 ① 世界地图数据准备 ② 世界地图生成 2.省份(河北省)地图绘制演示 ① 省份地图数据准备 ② 省份地图生成 3.城市(承德市)地图绘制演示 ① 城市地图数据准备 ② 城市地图生成 1.世界地图绘制演示 先给大家看下效果图哈. ① 世界地图数据准备 地图数据如下: 因为是世界地图,所以对标的国家,我设置了 2 组,里面的数据是随机生成的. # -*- coding:utf-8 -*- # 2022-2-14 # 作者:小蓝枣 # pyecharts地图 # 需要引用

  • Python pyecharts实现绘制中国地图的实例详解

    目录 实例演示 1.pyecharts 1.9.1 版本安装与数据准备 2.添加数据项,默认中国地图显示 常用配置项及参数解析 1.设置是否默认选中 2.设置地图颜色类型是否分段显示 3.缩放平移配置 4.启用和关闭图形标记 5.关闭标签名称显示 6.颜色设置:标签颜色.区域颜色.边框颜色 实例演示 先给大家看下效果图哈. 1.pyecharts 1.9.1 版本安装与数据准备 首先需要安装 pyecharts 库,直接 pip install pyecharts 就好了. 新版本的话不需要单独

  • Python pyecharts绘制词云图代码

    目录 一.pyecharts绘制词云图WordCloud.add()方法简介 二.绘制词云图对应轮廓按diamond显示 三.对应完整代码如下所示 一.pyecharts绘制词云图WordCloud.add()方法简介 WordCloud.add()方法简介: add(name,attr,value, shape="circle", word_gap=20, word_size_range=None, rotate_step=45) name str 图例名称 attr list 属性

  • 利用Python pyecharts绘制饼图

    目录 一.pyecharts绘制饼图语法简介 二.绘制普通饼图 三.绘制圆环图 四.绘制饼图-玫瑰图 一.pyecharts绘制饼图语法简介 饼图主要用于表现不同类目的数据在总和中的占比.每个的弧度不是数据量的占比 pie.add()方法的用法 add(name, attr, value, radius=None, center=None, rosetype=None, **kwargs) name->str 图例名称 attr->list 属性名称 value->list 属性所对应的

  • Python pyecharts绘制柱状图

    目录 一.pyecharts绘制柱状图语法简介 二.绘制普通柱状图 三.绘制堆叠柱状图 四.绘制横向柱状图 五.pyecharts柱状图datazoom案例 六.对应pyecharts柱状图datazoom案例的代码我用page放一起了 一.pyecharts绘制柱状图语法简介 柱状/条形图,通过柱形的高度/条形的宽度来表现数据的大小. Bar.add() 方法签名: add(name, x_axis, y_axis, is_stack=False, bar_category_gap='20%'

  • Python Pyecharts绘制象形柱图

    目录 1.准备工作 1.1 导入模块 1.2 部分参数 2.基础象形图 3.自定义图例 3.1 图片图例 3.2 生成象形图 在可视化展示过程中,为了达到更形象的展示效果,我们往往需要自定义一些直观的图例,本期给大家介绍可视化库Pyecharts中的象形柱图,希望对你有所帮助. 1.准备工作 1.1 导入模块 from pyecharts import options as opts from pyecharts.charts import PictorialBar from pyecharts

  • Python 数据可视化神器Pyecharts绘制图像练习

    目录 前言: 1.Hive数据库查询sql 2.Python代码实现—柱状图 3.Python代码实现—饼状图 4.Python代码实现—箱型图 5.Python代码实现—折线图 6.Python代码实现—雷达图 7.Python代码实现—散点图 前言: Echarts 是百度开源的一款数据可视化 JS 工具,数据可视化类型十分丰富,但是得通过导入 js 库在 Java Web 项目上运行. 作为工作中常用 Python 的选手,不能不知道这款数据可视化插件的强大.那么,能否在 Python 中

  • Python可视化神器pyecharts绘制柱状图

    目录 主题介绍 图表参数 主题详解 柱状图模板系列 海量数据柱状图动画展示 收入支出柱状图(适用于记账) 三维数据叠加 柱状图与折线图多维展示(同屏展示) 单列多维数据展示 3D柱状图 主题介绍 pyecharts里面有很多的主题可以供我们选择,我们可以根据自己的需要完成主题的配置,这样就告别了软件的限制,可以随意的发挥自己的艺术细胞了. 图表参数 ''' def add_yaxis( # 系列名称,用于 tooltip 的显示,legend 的图例筛选. series_name: str, #

  • Python可视化神器pyecharts绘制漏斗图

    目录 漏斗图 漏斗图系列模板 尖顶型漏斗图 锥子型漏斗 三角形漏斗 连接型漏斗 漏斗图 漏斗图是由Light等在1984年提出,一般以单个研究的效应量为横坐标,样本含量为纵坐标做的散点图.效应量可以为RR.OR和死亡比或者其对数值等.理论上讲,被纳入Meta分析的各独立研究效应的点估计,在平面坐标系中的集合应为一个倒置的漏斗形,因此称为漏斗图. 样本量小,研究精度低,分布在漏斗图的底部,向周围分散: 样本量大,研究精度高,分布在漏斗图的顶部,向中间集中. 漏斗图法的优点是: 简单易行,只需要被纳

  • Python可视化神器pyecharts绘制雷达图

    目录 雷达图 雷达图模板系列 基础雷达图 单例雷达图 空气质量模板 颜色雷达图 雷达图 雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法.轴的相对位置和角度通常是无信息的. 雷达图也称为网络图,蜘蛛图,星图,蜘蛛网图,不规则多边形,极坐标图或Kiviat图.它相当于​ ​平行坐标图​​,轴径向排列. 平行坐标图: 平行坐标图是一种通常的可视化方法, 用于对 高维几何 和 多元数据 的可视化. 为了表示在高维空间的一个点集,在N条平行的线的背景下,(一

  • Python可视化神器pyecharts绘制桑基图

    目录 桑基图 桑基图系列模板 第一个桑基图 复杂桑基图 桑基图 桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图.它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于​​能源​​​.材料成分.​​金融​​​等数据的可视化分析.因1898年Matthew Henry Phineas Riall Sankey绘制的“​​蒸汽机​​的能源效率图”而闻名,此后便以其名字命名为“桑基图”. 桑基图最明显的特征就是,始末端的分支宽度总和相等,即所有主支宽度

  • Python可视化神器pyecharts绘制地理图表

    目录 地理图表 地理图表之热力图系列模板 人口流动趋势图(中国) 中国城市分段热力图 重庆省份微塑料分布热力图 中国城市连续热力图 中国城市热力动态图 中国城市散点热力图 地理图表 什么是地理图表?地理图表有什么作用?地理图表主要应用在那些领域? 其实这些问题看看下面的实例图形就已不攻自破了,地理图表一看首先就是地图,然后在地理图表里面展示数据,比如说热力图,趋势流动图,人口密集分布图,反正地理坐标相关的就可以运用在这个里面,其次图形支持全球地图,全球国家,中国,中国的所有的省份的地图,反正应有

  • Python可视化神器pyecharts绘制折线图详情

    目录 折线图介绍 折线图模板系列 双折线图(气温最高最低温度趋势显示) 面积折线图(紧贴Y轴) 简单折线图(无动态和数据标签) 连接空白数据折线图 对数轴折线图示例 折线图堆叠(适合多个折线图展示) 二维曲线折线图(两个数据) 多维度折线图(颜色对比) 阶梯折线图 js高渲染折线图 折线图介绍 折线图和柱状图一样是我们日常可视化最多的一个图例,当然它的优势和适用场景相信大家肯定不陌生,要想快速的得出趋势,抓住趋势二字,就会很快的想到要用折线图来表示了.折线图是通过直线将这些点按照某种顺序连接起来

  • Python可视化神器pyecharts绘制水球图

    目录 水球图 双水球图显示 正方形水球图 圆球水球图 数据精度水球图 炫酷水球超级好看 水球图 水球图首先是动态的效果,像水流一样波动,所以看起来比较的舒服,一般用于业务里面的完成率,其实和之前的仪表盘有点类似,但是我个人绝对水球图更加的好,因为看起来比较的炫酷. from pyecharts import options as opts from pyecharts.charts import Liquid from pyecharts.globals import SymbolType c

  • Python可视化神器pyecharts绘制仪表盘

    目录 仪表盘 仪表盘模板系列 假期剩余额度 任务完成率 多色仪表盘 仪表盘内部字体添加 仪表盘 仪表盘的效果我只能说炫酷而已,如果想要运用在实际的场景中,我其实也不清楚那个场景比较适合,但是pyecharts毕竟是炫酷可视化的利器,炫酷自然也就有它了. 小汽车仪表盘是长这样的,下面我们来看看pyecharts的仪表盘是怎么样子的. 仪表盘模板系列 假期剩余额度 import pyecharts.options as opts from pyecharts.charts import Gauge

  • Python数据可视化之Pyecharts使用详解

    目录 1. 安装Pyecharts 2. 图表基础 2.1 主题风格 2.2 图表标题 2.3 图例 2.4 提示框 2.5 视觉映射 2.6 工具箱 2.7 区域缩放 3. 柱状图 Bar模块 4. 折线图/面积图 Line模块 4.1 折线图 4.2 面积图 5.饼形图 5.1 饼形图 5.2 南丁格尔玫瑰图 6. 箱线图 Boxplot模块 7. 涟漪特效散点图 EffectScatter模块 8. 词云图 WordCloud模块 9. 热力图 HeatMap模块 10. 水球图 Liqu

随机推荐