普通柱状图
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
from pyecharts.globals import CurrentConfig,NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
c =(
Bar()
.add_xaxis(Faker.choose())
.add_yaxis('商家A',Faker.values())
.add_yaxis('商家B',Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(
title='柱形图',
subtitle='副标题'
)
)
)
c.load_javascript()
c.render_notebook()
动画柱状图
# 带动画
c =(
Bar(
init_opts=opts.InitOpts(
animation_opts=opts.AnimationOpts(
animation_delay=1000,# 1秒钟延时
animation_easing='elasticout' # 弹出显示
)
)
)
.add_xaxis(Faker.choose())
.add_yaxis('商家A',Faker.values())
.add_yaxis('商家B',Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(
title='柱形图',
subtitle='副标题'
)
)
)
c.render_notebook()
运行后有个弹出效果的
JScode
from pyecharts.commons.utils import JsCode
# 带动画
c =(
Bar(
init_opts=opts.InitOpts(
animation_opts=opts.AnimationOpts(
animation_delay=1000,# 1秒钟延时
animation_easing='elasticout' # 弹出显示
),
bg_color={
'image':JsCode('img'),
'repeat':'no-repeat' # 不重复
}
)
)
.add_xaxis(Faker.choose())
.add_yaxis('商家A',Faker.values())
.add_yaxis('商家B',Faker.values())
.set_global_opts(
title_opts=opts.TitleOpts(
title='柱形图',
subtitle='副标题'
)
)
)
c.add_js_funcs(
'''
var img = new Image();
img.src="https://n.sinaimg.cn/sinacn/w640h404/20180125/8f38-fyqwiqk5126711.jpg"
'''
)
c.render_notebook()
堆叠柱状图
c =(
Bar()
.add_xaxis(Faker.choose())
.add_yaxis('商家A',Faker.values(),stack='abc')
.add_yaxis('商家B',Faker.values(),stack='abc')
.set_global_opts(
title_opts=opts.TitleOpts(
title='柱形图',
subtitle='副标题'
),
# x轴旋转
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-45)),
# 缩放
datazoom_opts=[
opts.DataZoomOpts(),# x轴拖拉缩放
opts.DataZoomOpts(type_='inside')#鼠标滚轮缩放
]
)
.set_series_opts(
label_opts=opts.LabelOpts(
is_show=False
)
)
)
c.render_notebook()
条形图
c =(
Bar()
.add_xaxis(Faker.choose())
.add_yaxis('商家A',Faker.values())
.add_yaxis('商家B',Faker.values())
# 轴旋转变成条形图
.reversal_axis()
.set_global_opts(
title_opts=opts.TitleOpts(
title='条形图',
),
)
.set_series_opts(
label_opts=opts.LabelOpts(
is_show=True,
position='right' # 数值显示在右边
)
)
)
c.render_notebook()
不同系列柱之间的间距
c =(
Bar()
.add_xaxis(Faker.choose())
.add_yaxis('商家A',Faker.values(),gap='0')
.add_yaxis('商家B',Faker.values(),gap='0')
.set_global_opts(
title_opts=opts.TitleOpts(
title='不同系列柱之间的间距',
),
)
)
c.render_notebook()
单系列柱之间的间距
c =(
Bar()
.add_xaxis(Faker.choose())
.add_yaxis('商家A',Faker.values(),category_gap='0')
# .add_yaxis('商家B',Faker.values(),gap='0')
.set_global_opts(
title_opts=opts.TitleOpts(
title='直方图 -单系列柱之间的间距',
),
)
)
c.render_notebook()
JScode 自定义柱的颜色
color_func = """
function(params){
if (params.value > 0 && params.value < 50){
return 'red';
}
else if (params.value > 50 && params.value < 100){
return 'green';
}
return 'blue';
}
"""
c =(
Bar()
.add_xaxis(Faker.choose())
.add_yaxis(
'商家A',
Faker.values(),
itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_func))
)
.add_yaxis('商家B',Faker.values(),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_func)) )
.add_yaxis('商家c',Faker.values(),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_func)) )
.set_global_opts(
title_opts=opts.TitleOpts(
title='直方图 -单系列柱之间的间距',
),
)
)
c.render_notebook()
象形柱状图
from pyecharts import options as opts
from pyecharts.charts import PictorialBar
from pyecharts.globals import SymbolType
location=["山西","四川","西藏","北京","上海","内蒙古","云南","黑龙江","广东","福建"]
va1ues=[13,42,67,81,86,94,166,220,249,262]
c=(
PictorialBar()
.add_xaxis(location)
.add_yaxis(
'地域',
va1ues,
label_opts=opts.LabelOpts(is_show=False),
symbol=SymbolType.DIAMOND ,# 符号形状
symbol_repeat='fixed',#重复方式
symbol_size=15,
is_symbol_clip=True
)
.reversal_axis()
.set_global_opts(
title_opts=opts.TitleOpts(
title='象形柱状图'
),
xaxis_opts=opts.AxisOpts(
is_show=False,
axisline_opts=opts.AxisLineOpts(is_show=False)
),# 不显示X轴
yaxis_opts=opts.AxisOpts(
axistick_opts=opts.AxisTickOpts(is_show=False),# 不显示刻度
axisline_opts=opts.AxisLineOpts(is_show=False)
)
)
)
c.render_notebook()