当前位置: 首页 > news >正文

pyecharts操作一

pyecharts 是一个用于生成Echarts图表的Python库。Echarts是百度开源的一个数据可视化JS库,可以生成一些非常酷炫的图表。

  • 环境安装

    • pip install pyecharts
  • 检查版本

import pyecharts
print(pyecharts.version)
2.0.3

  • 柱状图绘制

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType

#v1版本开始支持链式调用
bar = (Bar(init_opts = opts.InitOpts(theme = ThemeType.WESTEROS))
.add_xaxis([“Apple”,“Huawei”,“Xiaomi”,“Oppo”,“Vivo”,“Meizu”]) #指定x轴
#可以指定多个y轴
.add_yaxis(“电商渠道”,[133,163,99,117,108,33])
.add_yaxis(“门店”,[66,87,103,78,55,77])
#全局配置操作
.set_global_opts(title_opts=opts.TitleOpts(title=“Bar-基本示例”,subtitle=“我是副标题”))
)
#在juputer notebook中渲染
bar.render_notebook()
在这里插入图片描述

  • 添加工具箱配置
    • 在全局配置set_global_opts中添加:
      • toolbox_opts=opts.ToolboxOpts()

from pyecharts.charts import Bar
from pyecharts import options as opts

#示例数据
cate = [‘Apple’,‘Huawei’,‘Xiaomi’,‘Oppo’,‘Vivo’,‘Meizu’]
data1 = [133,163,99,117,108,33]
data2 = [66,87,103,78,55,77]

#1.x版本支持链式调用
bar = (Bar()
.add_xaxis(cate) #指定x轴
#可以指定多个y轴
.add_yaxis(‘电商渠道’,data1)
.add_yaxis(‘门店’,data2)
.set_global_opts(title_opts=opts.TitleOpts(title=“Bar-基本示例”,subtitle=“我是副标题”)
,toolbox_opts=opts.ToolboxOpts() #添加工具箱代码
)
)
#在jupyter notebook中渲染
bar.render_notebook()
在这里插入图片描述

  • 饼图绘制

cate = [‘Apple’, ‘Huawei’, ‘Xiaomi’, ‘Oppo’, ‘Vivo’, ‘Meizu’]
data = [163, 134, 117, 109, 99, 56]

[list(z) for z in zip(cate,data)]

from pyecharts.charts import Pie
from pyecharts import options as opts

#示例数据
cate = [‘Apple’, ‘Huawei’, ‘Xiaomi’, ‘Oppo’, ‘Vivo’, ‘Meizu’]
data = [163, 134, 117, 109, 99, 56]

pie = (Pie()
.add(‘’,[list(z) for z in zip(cate,data)],
radius=[“30%”,“75%”], #设置半径(内外圈半径)
rosetype=“radius” #半径形式的玫瑰型样式(经典)
)
.set_global_opts(title_opts=opts.TitleOpts(title=“Pie-基本示例”,subtitle=“我是副标题”))
.set_series_opts(label_opts=opts.LabelOpts(formatter=“{b}:{d}%”))
)

pie.render_notebook()
在这里插入图片描述

  • 折线图

from pyecharts.charts import Line
from pyecharts import options as opts

#示例数据
cate = [‘Apple’, ‘Huawei’, ‘Xiaomi’, ‘Oppo’, ‘Vivo’, ‘Meizu’]
data1 = [133,163,99,117,108,33]
data2 = [66,87,103,78,55,77]

“”"
折线图示例:

  1. is_smooth 折线 OR 平滑
  2. markline_opts 标记线 OR 标记点
    “”"
    line = (Line()
    .add_xaxis(cate)
    .add_yaxis(‘电商渠道’,data1,
    #均值标记线
    markline_opts=opts.MarkLineOpts(data=[opts.MarkAreaItem(type_=“average”)]))
    .add_yaxis(‘门店’,data2,
    is_smooth=True,
    markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_=“average”)])
    )
    .set_global_opts(title_opts=opts.TitleOpts(title=“Line-基本示例”,subtitle=“我是副标题”))
    )

line.render_notebook()
在这里插入图片描述

  • 漏斗图

from pyecharts.charts import Funnel
from pyecharts import options as opts

示例数据

cate = [‘访问’, ‘注册’, ‘加入购物车’, ‘提交订单’, ‘付款成功’]
data = [30408, 15240, 10055, 8119, 5708]

“”"
漏斗图示例:

  1. sort_控制排序,默认降序;
  2. label_opts标签显示位置
    “”"
    funnel = (Funnel()
    .add(“用户数”,[list(z) for z in zip(cate,data)],
    sort_=‘ascending’,
    label_opts=opts.LabelOpts(position=“inside”)
    )
    .set_global_opts(title_opts=opts.TitleOpts(title=“Funnel-基本示例”,subtitle=“我是副标题”))
    )

funnel.render_notebook()
在这里插入图片描述

  • MapGlobe

import pyecharts.options as opts
from pyecharts.charts import MapGlobe
from pyecharts.faker import POPULATION

data = [x for _, x in POPULATION[1:]]
low, high = min(data), max(data)

m = (
MapGlobe()
.add_schema()
.add(
maptype=“world”,
series_name=“World Population”,
data_pair=POPULATION[1:],
is_map_symbol_show=False,
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
min_=low,
max_=high,
range_text=[“max”, “min”],
is_calculable=True,
range_color=[“lightskyblue”, “yellow”, “green”],
)
)
)
m.render_notebook()
在这里插入图片描述

  • 仪表盘

import pyecharts.options as opts
from pyecharts.charts import Gauge

g = (
Gauge()
.add(series_name=“业务指标”, data_pair=[[“完成率”, 59.5]])
.set_global_opts(
legend_opts=opts.LegendOpts(is_show=False),
tooltip_opts=opts.TooltipOpts(is_show=True, formatter=“{a}
{b} : {c}%”),
)
)
g.render_notebook()
在这里插入图片描述

  • 关系图

from pyecharts import options as opts
from pyecharts.charts import Graph

nodes = [
{“name”: “结点1”, “symbolSize”: 20},
{“name”: “结点2”, “symbolSize”: 30},
{“name”: “结点3”, “symbolSize”: 40},
{“name”: “结点4”, “symbolSize”: 50},
{“name”: “结点5”, “symbolSize”: 60},
{“name”: “结点6”, “symbolSize”: 50},
{“name”: “结点7”, “symbolSize”: 40},
{“name”: “结点8”, “symbolSize”: 30},
]
links = []
for i in nodes:
for j in nodes:
links.append({“source”: i.get(“name”), “target”: j.get(“name”)})
g = (
Graph()
.add(“”, nodes, links, repulsion=8000)
.set_global_opts(title_opts=opts.TitleOpts(title=“我是关系图”))
)
g.render_notebook()
在这里插入图片描述

  • 水球图

from pyecharts import options as opts
from pyecharts.charts import Grid, Liquid
from pyecharts.commons.utils import JsCode

l1 = (
Liquid()
.add(“lq”, [0.7, 0.8], center=[“70%”, “60%”])
.set_global_opts(title_opts=opts.TitleOpts(title=“我们是水球图”))
)

l2 = Liquid().add(
“lq”,
[0.4318],
center=[“35%”, “60%”],
label_opts=opts.LabelOpts(
font_size=50,
formatter=JsCode(
“”“function (param) {
return (Math.floor(param.value * 10000) / 100) + ‘%’;
}”“”
),
position=“inside”,
),
)

grid = Grid().add(l1, grid_opts=opts.GridOpts()).add(l2, grid_opts=opts.GridOpts())
grid.render_notebook()
在这里插入图片描述
源文件可在这里下载:
https://download.csdn.net/download/ak2111/89039929?spm=1001.2014.3001.5501

http://www.lryc.cn/news/326803.html

相关文章:

  • 『Apisix进阶篇』动态负载均衡:APISIX的实战演练与策略应用
  • 【开发篇】十一、GC调优的分析工具
  • SpringCloudConfig 使用git搭建配置中心
  • c#基础-引用类型和值类型的区别
  • 面试题-3.20
  • glibc内存管理ptmalloc - 多线程内存管理
  • 区块链食品溯源案例实现(一)
  • 4S店车辆管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)
  • SpringBoot+Prometheus+Grafana实现应用监控和报警
  • 10 - Debian如何让特定用户切换root身份
  • HPT发布HyperGAI 多模态大模型:性能领先GPT-4V,全面胜过Gemini Pro
  • 汇春科技之MDT10F684
  • 【Vue3笔记01】如何使用Vue3和Vite搭建前端项目的基础开发环境
  • 软考高级架构师:信息安全概念和例题
  • Lilishop商城(windows)本地部署【docker版】
  • # 14 React 自定义Hook详解
  • HTML静态网页成品作业(HTML+CSS+JS)——中华美食八大菜系介绍(1个页面)
  • PostgreSQL11 | Windows系统安装PostgreSQL
  • uniapp保留两位小数,整数后面加.00
  • R: 网状Meta分析进行模型构建及图形绘制
  • 数据结构——排序算法
  • MyBatis的高级特性探索
  • 未来制造:机器人行业新质生产力提升策略
  • 开发过程中PostgreSQL常用的SQL语句,持续更新ing
  • Linux screen命令教程:如何在一个终端窗口中管理多个会话(附实例详解和注意事项)
  • Android中的本地广播与全局广播
  • Debezium日常分享系列之:Debezium2.5稳定版本之MySQL连接器配置示例和Connector参数详解
  • vue3父组件给子组件传值,并在子组件接受
  • Python爬虫如何快速入门
  • 酷开科技依托酷开系统用“平台+产品+场景”塑造全屋智能生活!