本专题将结合pyechart案例及行业数据, 提供各维度图表模板, 详细介绍参数功能, 就算不懂编程也可以轻松使用, 欢迎大家关注, 别走丢!
仪表盘布局如果添加不同背景图?
提前准备
- 安装Anaconda软件
下载地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
使用jupyter notebook 或者spyder - 安装pyechart工具包
pyechart工具包有1.0版本和0.5版本, 请下载1.0以上版本
pip install pyecharts -U
模板13: 效果图
第1步: 导入工具包
import pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Map,Line,Bar
from pyecharts.globals import ThemeType
from pyecharts.commons.utils import JsCode
重点是JsCode, 设置背景图片
第2步: 读取数据
data = pd.read_excel('./data/彩票.xlsx',sheet_name=None)
data
数据为字典格式
第3步: 作图
第1个图: 柱形图
data1 = data['2020年3月-2021年2月中国彩票销售额']
data1
bar = (
Bar(init_opts=opts.InitOpts(width="1200px", height="500px",theme='light')) # 设置图表大小
.add_xaxis(data1['时间'].tolist()) # 设置柱形图的x轴, 必须写.tolist()
.add_yaxis(
series_name="销售额(亿元)", # y轴系列名称
y_axis=data1['销售额(亿元)'].tolist(), # 系列书籍
label_opts=opts.LabelOpts(is_show=True,position='top',formatter="{c}"),# 数字标签显示样式
itemstyle_opts=opts.ItemStyleOpts(color="#51c4d3",opacity=1), # 柱形图颜色 ,透明度
)
.set_global_opts(
title_opts=opts.TitleOpts(title="2020年3月-2021年2月中国彩票销售额", # 主标题
subtitle="", #副标题
pos_top='5%',
title_textstyle_opts=opts.TextStyleOpts(font_size=15,color='white'),
pos_left='center'), # 位置
tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"), # 鼠标交叉十字显示
legend_opts=opts.LegendOpts(is_show=True,pos_top="bottom"), # 图例
yaxis_opts=opts.AxisOpts( # 显示y轴网格线
is_show=False,
type_="value",
axistick_opts=opts.AxisTickOpts(is_show=False), # 坐标轴商的刻度是否显示
axisline_opts=opts.AxisLineOpts(is_show=False), # y轴线
splitline_opts=opts.SplitLineOpts(is_show=True), # y轴网格线是否显示
))
)
bar.render('13_2020年3月-2021年2月中国彩票销售额.html')
第2个图: 地图
data2 = data['2021年1-2月中国各地区彩票累计销售额']
data2
map2 = (
Map(init_opts=opts.InitOpts(width="1400px", height="700px",theme='light')) # 设置图表大小 主题风格 ThemeType.LIGHT Dark ,theme='vintage'
.add("省份", # 系列名称
[list(z) for z in zip(data2['省市'], data2['累计销售额(亿元)'])], # 数据
"china", # 地图
is_map_symbol_show=False, # 不显示小红点
)
.set_global_opts(
title_opts=opts.TitleOpts(title="2021年1-2月中国各地区彩票累计销售额", # 图表标题
title_textstyle_opts=opts.TextStyleOpts(font_size=15, color='white'), #字体大小 T
pos_left='center', # 标题位置
pos_top='5%'),
legend_opts=opts.LegendOpts(is_show=False), # 图例是否显示
visualmap_opts=opts.VisualMapOpts(max_=60, # 最大值
is_piecewise=True, # 是否为分段型
split_number=6, # 分多少段
range_text=['亿元',''], # 上下显示的文字
range_color=["#d9ecf2", "#a2d5f2", "#e8ffc1", "#a5ecd7", "#51adcf", "#0278ae"],#颜色
pos_left='20%',
pos_top='70%',
),
))
map2.render("./13_2021年1-2月中国各地区彩票累计销售额.html")
第3个图: 目的是添加仪表盘名称及背景图
# 标题
line3 = (
Line(init_opts=opts.InitOpts(width="1250px",
height="700px",
bg_color={"type": "pattern", "image": JsCode("img"), "repeat": "no-repeat"}))
.add_xaxis([None])
.add_yaxis("", [None])
.set_global_opts(
title_opts=opts.TitleOpts(title="2021年中国彩票销售额",
subtitle='更新日期: 2021/4/11',
pos_left='center',
title_textstyle_opts=opts.TextStyleOpts(font_size=25, color='#51c2d5'),
pos_top='5%'),
yaxis_opts=opts.AxisOpts(is_show=False),
xaxis_opts=opts.AxisOpts(is_show=False))
)
line3.add_js_funcs(
"""
var img = new Image(); img.src = 'http://img.netbian.com/file/2019/1121/5e4911c7c44d251ee030cfafe3660394.jpg';
"""
)
line3.render('./13_辅助.html')
通过bg_color和add_js_funcs 两个地方设置,修改图表背景图
组合
page = Page(layout=Page.DraggablePageLayout)
page.add(line3,bar,map2)
page.render("2021年1-2月中国各地区彩票累计销售额.html")
调整几个图表位置后,保存为一个json文件
重新渲染
# 重新布局
Page.save_resize_html("2021年1-2月中国各地区彩票累计销售额.html",
cfg_file="./布局文件/chart_config (3).json",
dest="2021年1-2月中国各地区彩票累计销售额_re2.html")