十四.PyEcharts基础学习

news/2024/12/28 12:25:54/

目录

1-PyEcharts介绍

优点:

安装:

官方文档:

2-PyEcharts快速入门

2.1 第一个图表绘制

2.2 链式调用

2.3 opeions配置项

2.4 渲染图片文件

2.5 使用主题

3-PyEcharts配置项

3.1 初始化配置项InitOpts

InitOpts

3.2 全局配置项set_global_opts

标题配置TitleOpts

图例配置LegendOpts

常见图标:

工具箱配置ToolboxOpts

视觉映射配置VisualMapOpts

提示框配置:TooltipOpts

区域缩放配置:DataZoomOpts



1-PyEcharts介绍

Echarts是一个由百度开源数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。

而Python 是一门富有表达力的语言,很适合用于数据处理。

当数据分析遇上数据可视化时,pyecharts诞生了。

Echarts是用JS来写的,而我们使用pyecharts则可以使用Python来调用里面的API

优点:

1、简洁的 API 设计,使用如丝滑般流畅,支持链式调用.

2、囊括了 30+ 种常见图表,应有尽有 .

3、支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab.

4、可轻松集成至 Flask,Django 等主流 Web 框架.

5、高度灵活的配置项,可轻松搭配出精美的图表.

6、详细的文档和示例,帮助开发者更快的上手项目.

7、多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持.

安装:

pip install pyecharts==1.9.1

官方文档:

pyecharts - A Python Echarts Plotting Library built with love.


2-PyEcharts快速入门

pyecharts中可以绘制的图有很多,这里我们先来总体的了解一下他的使用风格,和调用的方式。有宏观的理解后,再具体学习具体图形的绘制。

2.1 第一个图表绘制

from pyecharts.charts import Bar

from pyecharts.charts import Bar
​
# Bar绘制柱状图
bar = Bar()
bar.add_xaxis(["苹果","华为","联想","三星","小米"])
bar.add_yaxis("淘宝",[12000,8000,6000,14000,4000])
bar.add_yaxis("京东",[13000,7500,4000,12000,6000])
​
# render 默认渲染成html
bar.render()    #'可传文件名--保存'
# 在notebook中展示
bar.render_notebook()

2.2 链式调用

--上面代码的简化版.更方便.

bar = (Bar()   #创建对象.#注意:这里是  点.add_xaxis(["苹果","华为","联想","三星","小米"]).add_yaxis("淘宝",[12000,8000,6000,14000,4000]).add_yaxis("京东",[13000,7500,4000,12000,6000])
)
bar.render_notebook()

2.3 opeions配置项

全局/局部/初始化

from pyecharts import options as opts
from pyecharts import options as opts
​
bar = (Bar().add_xaxis(["苹果","华为","联想","三星","小米"]).add_yaxis("淘宝",[12000,8000,6000,14000,4000]).add_yaxis("京东",[13000,7500,4000,12000,6000])
#            set_global_opts:全局配置  title_opts:标题.set_global_opts(title_opts=opts.TitleOpts(title="主标题1",subtitle="副标题1"))
#     .set_global_opts(title_opts={"text":"主标题2","subtext":"副标题2"})
​
)
bar.render_notebook()

2.4 渲染图片文件

--正常保存下来的图片(png/jpg)的背景是没有进行渲染的.

from pyecharts.render import make_snapshot
# pip install snapshot_selenium
from snapshot_selenium import snapshot
#这里要用到自动化,浏览器自动化别忘了~~
bar = (Bar().add_xaxis(["苹果","华为","联想","三星","小米"]).add_yaxis("淘宝",[12000,8000,6000,14000,4000]).add_yaxis("京东",[13000,7500,4000,12000,6000])
​
)
make_snapshot(snapshot,bar.render(),"bar.png")

2.5 使用主题

  • 默认主题类型为WHITE

  • 内置主题类型包括LIGHT、DARK、CHALK、ESSOS、INFOGRAPHIC、MACARONS、PURPLE_PASSION、ROMA、ROMANTIC、SHINE、VINTAGE、WALDEN、WESTEROS、WONDERLAND

  • 可参考官方文档:pyecharts - A Python Echarts Plotting Library built with love.

from pyecharts.globals import ThemeType
​
bar = (Bar(#对象里面设置主题(配置项)init_opts=opts.InitOpts(theme=ThemeType.DARK)).add_xaxis(["苹果","华为","联想","三星","小米"]).add_yaxis("淘宝",[12000,8000,6000,14000,4000]).add_yaxis("京东",[13000,7500,4000,12000,6000])
​
)
bar.render_notebook()

3-PyEcharts配置项

3.1 初始化配置项InitOpts

  • InitOpts
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType, RenderType
​
# 生成同一属性的七个值
Faker.choose()      #Faker ---> 类似于random   #快速创建,方便啊.
# 生成随机的七组数
Faker.values()
​
bar = (Bar(# init_opts:初始化配置项init_opts=opts.InitOpts(# 画布大小 单位像素width="700px",height="500px",renderer=RenderType.CANVAS,     #渲染风格page_title="商品价格对比",theme=ThemeType.WESTEROS,   #主题bg_color="white",          #背景颜色)).add_xaxis(Faker.choose()).add_yaxis("淘宝",Faker.values()).add_yaxis("天猫",Faker.values()).add_yaxis("京东",Faker.values())
)
bar.render_notebook()

3.2 全局配置项set_global_opts

标题配置TitleOpts

bar = (Bar(# init_opts:初始化配置项init_opts=opts.InitOpts(# 画布大小 单位像素width="700px",height="500px",)).add_xaxis(Faker.choose()).add_yaxis("淘宝",Faker.values()).add_yaxis("天猫",Faker.values()).add_yaxis("京东",Faker.values()).set_global_opts(# TitleOpts:标题title_opts=opts.TitleOpts(title="价格对比柱状图",title_link="https://www.taobao.com",  # 点击主标题的跳转链接!!!#在哪个窗口打开.title_target="blank",  # blank:新窗口打开   self:当前窗口打开#主要是主标题的跳转.# subtitle="副标题",# subtitle_link="https://www.taobao.com",# subtitle_target="blank",# 位置 靠左 pos_left="20px",pos_top="30px",padding=5,   # 内边距item_gap=5, # 主副标题之间的距离))
)
bar.render_notebook()

图例配置LegendOpts

常见图标:

circle(圆),rect(矩形),roundRect(圆弧矩形),triangle(三角形),diamond(棱形) ,pin(坐标) arrow(位置)

bar = (Bar(# init_opts:初始化配置项init_opts=opts.InitOpts(# 画布大小 单位像素width="700px",height="500px",)).add_xaxis(Faker.choose()).add_yaxis("淘宝",Faker.values()).add_yaxis("天猫",Faker.values()).add_yaxis("京东",Faker.values()).set_global_opts(# LegendOpts 图例配置项legend_opts=opts.LegendOpts(type_="plain",  # 图例类型  plain普通图例    scroll:滚动翻页图例(图例很多)is_show=True,   # 是否显示图例pos_left="90%", # 图例的位置orient="veritica",  # veritica(垂直)或者horizontal(水平)item_gap=5,      # 图例之间的距离item_width=30,   # 图例的宽度item_height=10,   # 图例的高度# pyecharts常见图标 legend_icon="triangle"))
)
bar.render_notebook()

工具箱配置ToolboxOpts

bar = (Bar(# init_opts:初始化配置项init_opts=opts.InitOpts(# 画布大小 单位像素width="700px",height="500px",)).add_xaxis(Faker.choose()).add_yaxis("淘宝",Faker.values()).add_yaxis("天猫",Faker.values()).add_yaxis("京东",Faker.values()).set_global_opts(# TooltipOpts:提示框配置项toolbox_opts=opts.ToolboxOpts(is_show=True,pos_right="10"))
)
bar.render_notebook()

视觉映射配置VisualMapOpts

bar = (Bar(# init_opts:初始化配置项init_opts=opts.InitOpts(# 画布大小 单位像素width="700px",height="500px",)).add_xaxis(Faker.choose()).add_yaxis("淘宝",Faker.values()).add_yaxis("天猫",Faker.values()).add_yaxis("京东",Faker.values()).set_global_opts(# VisualMapOpts:视觉映射visualmap_opts=opts.VisualMapOpts(is_show=True,  # 显示映射条type_="color", # color颜色 size大小min_=0,max_=150,range_opacity=0.8,          # 透明度range_text=["mix","min"],    # 最大最小值文本range_color=["blue","green","red"],  #过度值颜色orient="horizontal",    # 对齐方式# veritica(垂直)或者horizontal(水平)is_piecewise=True       #分段展示))
)
bar.render_notebook()

提示框配置:TooltipOpts

  bar = (Bar(# init_opts:初始化配置项init_opts=opts.InitOpts(# 画布大小 单位像素width="700px",height="500px",)).add_xaxis(Faker.choose()).add_yaxis("淘宝",Faker.values()).add_yaxis("天猫",Faker.values()).add_yaxis("京东",Faker.values()).set_global_opts(# TooltipOpts:提示框配置项(这里面的设置都是提示框的)tooltip_opts=opts.TooltipOpts(is_show=True,  # 是否显示内容trigger_on="click",       #触发事件: mousemove 鼠标移动 / click 鼠标点击formatter="{a}:{b}:{c}",  # 内容格式:a-系列名 b-数据名  c-值background_color="red",   # 背景颜色border_color="green",     # 边框颜色border_width=2,           # 边框宽度)))bar.render_notebook()

区域缩放配置:DataZoomOpts

bar = (Bar(# init_opts:初始化配置项init_opts=opts.InitOpts(# 画布大小 单位像素width="700px",height="500px",)).add_xaxis(Faker.choose()).add_yaxis("淘宝",Faker.values()).add_yaxis("天猫",Faker.values()).add_yaxis("京东",Faker.values()).set_global_opts(# DataZoomOpts:区域缩放配置项.datazoom_opts=opts.DataZoomOpts(is_show=True,      # 开启区域缩放type_= "slider",   # 托条的类型 slider 和 inside(这个要用鼠标滚动,不好玩)is_realtime=True, # 拖动是否实时跟新.range_start=20,    # 拖动起始位置 单位百分比range_end=80,      # 拖动结束位置 单位百分比is_zoom_lock=True  # 是否锁定拖拽区域.(能否放大放小)  ))
)
bar.render_notebook()



http://www.ppmy.cn/news/1404271.html

相关文章

浅谈css优化和提高性能的办法

加载性能优化 1、css压缩:将css打包压缩,可以减小文件体积 2、css单一样式:使用margin-left,margin-bottom这种,比使用margin复合属性更快 3、减少使用import,多使用link 选择器性能优化 1、关键选择器&am…

OpenHarmony实战:命令行工具hdc安装应用指南

一、工具概述 hdc(OpenHarmony Device Connector)是为开发人员提供的用于设备连接调试的命令行工具,该工具需支持部署在 Windows/Linux/Mac 等系统上与 OpenHarmony 设备(或模拟器)进行连接调试通信。 简言之&#xf…

MIPI RFFE接口

1. 概况 MIPI RFFE是一种专门针对当前及未来无线系统在射频(RF)前端控制界面规范。随着手机射频系统日趋复杂,业界需要一个单一控制界面解决方案。MIPI联盟的RF前端控制界面(RFFE)规范通过提供一个可连接到收发器或无线电的总线界面解决了这一难题,可用于…

Web3 革命:揭示区块链技术的全新应用

随着数字化时代的不断发展,区块链技术作为一项颠覆性的创新正在改变着我们的世界。而在这一技术的进步中,Web3正逐渐崭露头角,为区块链技术的应用带来了全新的可能性。本文将探讨Web3革命所揭示的区块链技术全新应用,并展望其未来…

【统计】什么事 R 方

将线性模型拟合到时间序列时,通常使用最小二乘法在模型 y ^ ( t ) a b t \hat{y}(t) a bt y^​(t)abt中找到系数 a a a和 b b b,其中 y ^ ( t ) \hat{y}(t) y^​(t)是时间 t t t的预测值,而的观测值是 y ( t ) y(t) y(t)。 残差平方和又…

Keil MDK 5.37 及之后版本 安装 AC5(ARMCC) 编译器详细步骤

由于 Keil 5.37 及之后版本不再默认安装 AC5(ARMCC) 编译器,这就会导致由 AC5 编译的工程无法正常编译,往往输出窗口会提示以下信息:*** Target ‘STM32xxxx‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available. —…

linux连接不到docker端口

1、是否是防火墙开启 2、是否开启 IP 转发功能 net.ipv4.ip_forward net.ipv4.ip_forward 是 Linux 内核中的一个参数,用于控制 IP 转发功能。IP 转发是指在一个路由器或者网络设备上接收到一个 IP 数据包后,根据目标 IP 地址的路由信息将数据包发送到合…

汽车电子行业知识:什么是车联网V2X技术

文章目录 一、V2X是什么?二、V2X功能有哪些?三、V2X的发展现状四、V2X包含哪些技术?五、V2X与哪些领域相关?六、V2X的未来趋势七、有哪些研发V2X技术的公司八、V2X技术应用的困境九、V2X技术应用的需求 自动驾驶、汽车互联等新一代信息技术和汽车产业融合发展已经成为…