本专题将结合pyechart案例及行业数据, 提供各维度图表模板, 详细介绍参数功能, 就算不懂编程也可以轻松使用, 欢迎大家关注并订阅, 别走丢!
双坐标轴图如何美化?
pip install pyecharts -U
import pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Bar,Line
data = pd.read_excel('./data/2020年全球智能个人音频设备出货量及增长率.xlsx')
data
bar = (
Bar(init_opts=opts.InitOpts(width="1200px", height="500px",theme='light')) # 设置图表大小
.add_xaxis(data['品牌'].tolist()) # 设置柱形图的x轴, 必须写.tolist()
.add_yaxis(
series_name="2019年出货量(万台)", # y轴系列名称
y_axis=data['2019年出货量(万台)'].tolist(), # 系列书籍
label_opts=opts.LabelOpts(is_show=True,position='top',formatter="{c}"),# 数字标签显示样式
itemstyle_opts=opts.ItemStyleOpts(color="#23120b",opacity=1), # 柱形图颜色 ,透明度
)
.add_yaxis(
series_name="2020年出货量(万台)", # y轴系列名称
y_axis=data['2020年出货量(万台)'].tolist(), # 系列书籍
label_opts=opts.LabelOpts(is_show=True,position='top',formatter="{c}"),# 数字标签显示样式
itemstyle_opts=opts.ItemStyleOpts(color="#21209c",opacity=1), # 柱形图颜色
)
.extend_axis( # 设置次坐标轴
yaxis=opts.AxisOpts(
name="",
type_="value",
min_=-300, # 最小值
max_=160, # 最大值
is_show=False, # 是否显示
)
)
.set_global_opts(
title_opts=opts.TitleOpts(title="2020年全球智能个人音频设备出货量及增长率", # 主标题
subtitle="", #副标题
pos_top='5%',
title_textstyle_opts=opts.TextStyleOpts(font_size=20),
pos_left='center'), # 位置
tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"), # 鼠标交叉十字显示
legend_opts=opts.LegendOpts(is_show=False,pos_top="center"), # 图例
yaxis_opts=opts.AxisOpts( # 显示y轴网格线
is_show=False,
max_=41000,
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轴网格线是否显示
))
)
line = (
Line(init_opts=opts.InitOpts(width="1200px", height="500px")) # 设置图表大小
.add_xaxis(data['品牌'].tolist()) # 设置线形图的x轴
.add_yaxis("",
data['同比增长率(%)'], # 系列数据
symbol_size=10, # 标识的大小
is_smooth=True,
yaxis_index=1, # 主坐标轴还是次坐标轴
label_opts=opts.LabelOpts(is_show=True,position='bottom',formatter="{c}%",color ='#28527a'), # 数据标签
linestyle_opts=opts.LineStyleOpts(width=3,color ='#28527a'), # 线宽度
itemstyle_opts=opts.ItemStyleOpts(border_width=3, border_color='#28527a', color='#28527a'), # 标识的颜色和宽度
) #标记重点
)
bar.overlap(line) # 图表组合
bar.render('11_2020年全球智能个人音频设备出货量及增长率.html')