python pyecharts 实现一个文件绘制多张图


Posted in Python onMay 13, 2020

Grid并行显示多张图

注意: 第一个图需为 有 x/y 轴的图,即不能为 Pie,其他位置顺序任意

from pyecharts import Bar, Line, Scatter, EffectScatter, Grid
'''
 Grid类:并行显示多个图表 TODO 第一个图需为 有 x/y 轴的图,即不能为 Pie,其他位置顺序任意。
'''

attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [5, 20, 36, 10, 75, 90]
v2 = [10, 25, 8, 60, 20, 80]
bar = Bar("柱状图示例", title_pos="65%")
bar.add("商家A", attr, v1, is_stack=True)
bar.add("商家B", attr, v2, is_stack=True, legend_pos="80%")

line = Line("折线图示例")
attr = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
line.add(
 "最高气温",
 attr,
 [11, 11, 15, 13, 12, 13, 10],
 mark_point=["max", "min"],
 mark_line=["average"],
)
line.add(
 "最低气温",
 attr,
 [1, -2, 2, 5, 3, 2, 0],
 mark_point=["max", "min"],
 mark_line=["average"],
 legend_pos="20%",
)

v1 = [5, 20, 36, 10, 75, 90]
v2 = [10, 25, 8, 60, 20, 80]
scatter = Scatter("散点图示例", title_top="50%", title_pos="65%")
scatter.add("scatter", v1, v2, legend_top="50%", legend_pos="80%")

es = EffectScatter("动态散点图示例", title_top="50%")
es.add(
 "es",
 [11, 11, 15, 13, 12, 13, 10],
 [1, -2, 2, 5, 3, 2, 0],
 effect_scale=6,
 legend_top="50%",
 legend_pos="20%",
)

# TODO 配置Grid类
grid = Grid(height=720, width=1200) # 初始化,参数可传page_title,width,height
grid.add(bar, grid_bottom="60%", grid_left="60%") # 添加要展示的图表,并设置显示位置
grid.add(line, grid_bottom="60%", grid_right="60%") # 添加要展示的图表,并设置显示位置
grid.add(scatter, grid_top="60%", grid_left="60%") # 添加要展示的图表,并设置显示位置
grid.add(es, grid_top="60%", grid_right="60%") # 添加要展示的图表,并设置显示位置

grid.render("./pyecharts_html/Grid_并行显示多张图表.html")

overlap图表混合使用

from pyecharts import Line, Bar, Overlap
'''
 多个x y轴示例
'''

attr = ["{}月".format(i) for i in range(1, 13)]
v1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
v2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
v3 = [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]

bar = Bar()
bar.add("蒸发量", attr, v1)
bar.add("降水量", attr, v2, yaxis_formatter=" ml",
 yaxis_interval=50, yaxis_max=250)

line = Line()
line.add("平均温度", attr, v3, yaxis_formatter=" °C", yaxis_interval=5)

overlap = Overlap(width=1200, height=600) # 实例化
# 默认不新增 x y 轴,并且 x y 轴的索引都为 0
overlap.add(bar)
# 新增一个 y 轴,此时 y 轴的数量为 2,第二个 y 轴的索引为 1(索引从 0 开始),所以设置 yaxis_index = 1
# 由于使用的是同一个 x 轴,所以 x 轴部分不用做出改变
overlap.add(line, yaxis_index=1, is_add_yaxis=True)

overlap.render("./pyecharts_html/Overlap_图表混合.html")

Page一个页面顺序渲染多个图表

from pyecharts import *

page = Page() # 实例化page类

# line
attr = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
line = Line("折线图示例")
line.add("最高气温", attr, [11, 11, 15, 13, 12, 13, 10],
  mark_point=["max", "min"], mark_line=["average"])
line.add("最低气温", attr, [1, -2, 2, 5, 3, 2, 0],
  mark_point=["max", "min"], mark_line=["average"])

page.add(line) # TODO 向page中添加图表

# pie
attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [11, 12, 13, 10, 10, 10]
pie = Pie("饼图-圆环图示例", title_pos='center')
pie.add("", attr, v1, radius=[40, 75], label_text_color=None,
 is_label_show=True, legend_orient='vertical', legend_pos='left')

page.add(pie) # TODO 向page中添加图表

# kline
v1 = [[2320.26, 2320.26, 2287.3, 2362.94],
 [2300, 2291.3, 2288.26, 2308.38],
 [2295.35, 2346.5, 2295.35, 2345.92],
 [2347.22, 2358.98, 2337.35, 2363.8],
 [2360.75, 2382.48, 2347.89, 2383.76],
 [2383.43, 2385.42, 2371.23, 2391.82],
 [2377.41, 2419.02, 2369.57, 2421.15],
 [2425.92, 2428.15, 2417.58, 2440.38],
 [2411, 2433.13, 2403.3, 2437.42],
 [2432.68, 2334.48, 2427.7, 2441.73],
 [2430.69, 2418.53, 2394.22, 2433.89],
 [2416.62, 2432.4, 2414.4, 2443.03],
 [2441.91, 2421.56, 2418.43, 2444.8],
 [2420.26, 2382.91, 2373.53, 2427.07],
 [2383.49, 2397.18, 2370.61, 2397.94],
 [2378.82, 2325.95, 2309.17, 2378.82],
 [2322.94, 2314.16, 2308.76, 2330.88],
 [2320.62, 2325.82, 2315.01, 2338.78],
 [2313.74, 2293.34, 2289.89, 2340.71],
 [2297.77, 2313.22, 2292.03, 2324.63],
 [2322.32, 2365.59, 2308.92, 2366.16],
 [2364.54, 2359.51, 2330.86, 2369.65],
 [2332.08, 2273.4, 2259.25, 2333.54],
 [2274.81, 2326.31, 2270.1, 2328.14],
 [2333.61, 2347.18, 2321.6, 2351.44],
 [2340.44, 2324.29, 2304.27, 2352.02],
 [2326.42, 2318.61, 2314.59, 2333.67],
 [2314.68, 2310.59, 2296.58, 2320.96],
 [2309.16, 2286.6, 2264.83, 2333.29],
 [2282.17, 2263.97, 2253.25, 2286.33],
 [2255.77, 2270.28, 2253.31, 2276.22]]
kline = Kline("K 线图示例")
kline.add("日K", ["2017/7/{}".format(i + 1) for i in range(31)], v1)

page.add(kline) # TODO 向page中添加图表

# radar
schema = [
 ("销售", 6500), ("管理", 16000), ("信息技术", 30000),
 ("客服", 38000), ("研发", 52000), ("市场", 25000)
]
v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]
v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]
radar = Radar("雷达图示例")
radar.config(schema)
radar.add("预算分配", v1, is_splitline=True, is_axisline_show=True)
radar.add("实际开销", v2, label_color=["#4e79a7"], is_area_show=False,
  legend_selectedmode='single')

page.add(radar) # TODO 向page中添加图表
page.render("./pyecharts_html/Page_一个页面渲染多张图表.html")

Timeline:时间线轮播多图

from pyecharts import Bar, Line, Timeline, Overlap
from random import randint

attr = ["{}月".format(i) for i in range(1, 7)]
bar = Bar("1 月份数据", "数据纯属虚构")
bar.add("bar", attr, [randint(10, 50) for _ in range(6)])
line = Line()
line.add("line", attr, [randint(50, 80) for _ in range(6)])
overlap = Overlap()
overlap.add(bar)
overlap.add(line)

bar_1 = Bar("2 月份数据", "数据纯属虚构")
bar_1.add("bar", attr, [randint(10, 50) for _ in range(6)])
line_1 = Line()
line_1.add("line", attr, [randint(50, 80) for _ in range(6)])
overlap_1 = Overlap()
overlap_1.add(bar_1)
overlap_1.add(line_1)

bar_2 = Bar("3 月份数据", "数据纯属虚构")
bar_2.add("bar", attr, [randint(10, 50) for _ in range(6)])
line_2 = Line()
line_2.add("line", attr, [randint(50, 80) for _ in range(6)])
overlap_2 = Overlap()
overlap_2.add(bar_2)
overlap_2.add(line_2)

bar_3 = Bar("4 月份数据", "数据纯属虚构")
bar_3.add("bar", attr, [randint(10, 50) for _ in range(6)])
line_3 = Line()
line_3.add("line", attr, [randint(50, 80) for _ in range(6)])
overlap_3 = Overlap()
overlap_3.add(bar_3)
overlap_3.add(line_3)

bar_4 = Bar("5 月份数据", "数据纯属虚构")
bar_4.add("bar", attr, [randint(10, 50) for _ in range(6)])
line_4 = Line()
line_4.add("line", attr, [randint(50, 80) for _ in range(6)])
overlap_4 = Overlap()
overlap_4.add(bar_4)
overlap_4.add(line_4)

timeline = Timeline(
   page_title = "页标签名",
   width=600,
   height=600,
   is_auto_play= True, # 是否自动播放,默认=False
   is_loop_play= True, # 是否循环播放
   is_rewind_play=False, # 反向播放
   is_timeline_show=True, # 是否显示时间线,默认=true
   timeline_play_interval=1000, # 播放间隔,ms
   timeline_symbol= "arrow", # 时间点标记图形, 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
   timeline_symbol_size= [15,8], # 图形大小,可以是数字和列表,列表表示宽高
   timeline_left= "1% ", # 距离左边距离 , timeline_right
   timeline_bottom=0, # timeline_top
  )
timeline.add(overlap, '1 月')
timeline.add(overlap_1, '2 月')
timeline.add(overlap_2, '3 月')
timeline.add(overlap_3, '4 月')
timeline.add(overlap_4, '5 月')
timeline.render("./pyecharts_html/Timeline_时间线轮播多张图表.html")

以上这篇python pyecharts 实现一个文件绘制多张图就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python生成器generator用法实例分析
Jun 04 Python
微信跳一跳python自动代码解读1.0
Jan 12 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
浅谈Pandas:Series和DataFrame间的算术元素
Dec 22 Python
Python实现带下标索引的遍历操作示例
May 30 Python
Flask框架模板继承实现方法分析
Jul 31 Python
简单了解Python读取大文件代码实例
Dec 18 Python
Python如何使用内置库matplotlib绘制折线图
Feb 24 Python
python关于变量名的基础知识点
Mar 03 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 Python
Python socket如何解析HTTP请求内容
Feb 12 Python
Django与pyecharts结合的实例代码
May 13 #Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
May 12 #Python
Python爬取阿拉丁统计信息过程图解
May 12 #Python
PyPDF2读取PDF文件内容保存到本地TXT实例
May 12 #Python
Python3.7下安装pyqt5的方法步骤(图文)
May 12 #Python
小 200 行 Python 代码制作一个换脸程序
May 12 #Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
May 12 #Python
You might like
PHP数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
js中数组Array的一些常用方法总结
2013/08/12 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
python通过函数属性实现全局变量的方法
2015/05/16 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
浅谈react路由传参的几种方式
2021/03/23 Javascript
成人毕业生自我鉴定
2013/10/18 职场文书
考试不及格的检讨书
2014/01/22 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
小学班级特色活动方案
2014/08/31 职场文书
武夷山导游词
2015/02/03 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
法院执行局工作总结
2015/08/11 职场文书