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

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 实现一个文件绘制多张图就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 在echarts中图例legend和坐标系grid实现左右布局实例

    1.效果图 2.实现方法 将图例legend纵向排列(orient: 'vertical'),宽度给150(width: 150),坐标系grid左侧距离200(left: 200),中间有50的边距 3.代码展示 grid: { left: 200 }, legend: { x: 'left', data: ['送风温度', '混风温度', '冷冻水送水温度', '冷冻水回水温度', '热水送水温度', '热水回水温度', '送风温度设定点', '风机速度','风机速度反馈','风阀开度'],

  • pyecharts调整图例与各板块的位置间距实例

    引入Grid grid=Grid() # 可以分别调整上下左右的位置,可以是百分比,也可以是具体像素,如pos_top="50px" grid.add(c,grid_opts=opts.GridOpts(pos_top="50%",pos_bottom="50%",pos_left="50%",pos_right="50%")) 调整前的默认距离 代码如下 from example.commons impo

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

    Grid并行显示多张图 注意: 第一个图需为 有 x/y 轴的图,即不能为 Pie,其他位置顺序任意 from pyecharts import Bar, Line, Scatter, EffectScatter, Grid ''' Grid类:并行显示多个图表 TODO 第一个图需为 有 x/y 轴的图,即不能为 Pie,其他位置顺序任意. ''' attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", &quo

  • Python+Pyecharts实现散点图的绘制

    目录 第1关:Scatter:散点图(一) 编程要求 代码 测试说明 第2关:Scatter:散点图(二) 编程要求 代码 测试说明 第3关:Scatter:散点图(三) 编程要求 代码 测试说明 第1关:Scatter:散点图(一) 编程要求 根据以上介绍,在右侧编辑器补充代码,绘制给定数据的散点图,要求: 画布大小初始化为宽 1600 像素,高 1000 像素 X 轴数据设置为 x_data 添加 Y 轴数据.系列名称设置为空,数据使用 y_data,标记的大小设置为20,不显示标签 X 轴

  • Python实现读取txt文件并画三维图简单代码示例

    记忆力差的孩子得勤做笔记! 刚接触python,最近又需要画一个三维图,然后就找了一大堆资料,看的人头昏脑胀的,今天终于解决了!好了,废话不多说,直接上代码! #由三个一维坐标画三维散点 #coding:utf-8 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.axes3d import Axes3D x = [] y = [] z = [] f = open("data\\record.

  • python matplotlib画图库学习绘制常用的图

    本文实例为大家分享了python matplotlib绘制常用图的具体代码,供大家参考,具体内容如下 github地址 导入相关类 import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=Fals

  • Python3 pyecharts生成Html文件柱状图及折线图代码实例

    代码如下 pip3 install pyechatrs #! /usr/bin/python3 from pyecharts.charts import Bar, Page from pyecharts import options as opts x = [ 'python数据可视化库 a1','python数据可视化库 b1','python数据可视化库 c1' ] y1 = [ 1140,520,270 ] y2 = [1000,300,500] bar = Bar() #设置x轴 bar

  • 用Python制作一个文件加密器

    目录 前言 下载地址 效果预览 加密算法 总结 前言 因为一些懂得都懂的原因,我的父母对于我电脑上的文件内容特别感兴趣.为了防止信息泄露,我连夜用Python做了一个文件加密器,防止我的重要信息被泄露. 下载地址 github:https://github.com/13337356453/FileCipher GitHub上的资源是Python源代码 效果预览 为了方便操作,我用PyQt做了窗口.运行起来是这样的. 加密效果还是很不错了 加密算法 对于我来说,程序中gui的编写算比较简单.困难的

  • Python Pyecharts绘制箱线图详解

    本篇博客只是单纯的记录一下自己学习Boxplot,没有过多的解释,官网:>>Boxplot import seaborn as sns import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt %matplotlib inline plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 用来正常显示中文标签 p

  • Python pyecharts Boxplot箱线图的实现

    本篇博客只是单纯的记录一下自己学习Boxplot,没有过多的解释,官网:>>Boxplot import seaborn as sns import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt %matplotlib inline plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 用来正常显示中文标签 p

  • Python plt 利用subplot 实现在一张画布同时画多张图

    subplot(arg1, arg2, arg3) arg1: 在垂直方向同时画几张图 arg2: 在水平方向同时画几张图 arg3: 当前命令修改的是第几张图 plt.figure()另起一张新的画布 from PIL import Image import matplotlib.pyplot as plt image1 = Image.open('1.jpg') image2 = Image.open('2.jpg') plt.subplot(121) plt.imshow(image1)

  • python 实现在一张图中绘制一个小的子图方法

    有时候为了直观展现图的信息,可以在大图中添加小子图的方式进行数据分析,如下图所示: 具体的代码如下:该图连接了数据库,当然重要的不是数据展示,而是添加子图的方法. import matplotlib.pyplot as plt import MySQLdb as mdb import numpy as np from mpl_toolkits.axes_grid1.inset_locator import inset_axes from mpl_toolkits.axes_grid1.inset

随机推荐