总共22个完整的pyecharts例子,包含常用的配置方法,每个小例子都包含完整代码,为避免混淆,每个例子都差不多只包含单一配置的代码,更多有趣的源码分享可以在评论区回复。
1. 柱状图堆叠
不同系列的数据使用相同的stack值会堆叠在一起;
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.faker import Faker
def bar_stack():
bar = Bar(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
bar.add_xaxis(Faker.choose())
# stack值一样的系列会堆叠在一起
bar.add_yaxis('A', Faker.values(), stack='stack1')
bar.add_yaxis('B', Faker.values(), stack='stack1')
bar.add_yaxis('C', Faker.values(), stack='stack2')
return bar
chart = bar_stack()
chart.render_notebook()
2.关闭坐标轴显示
碰上类目标签过长的时候,可以选择关闭坐标轴,将数据&标签直接显示在图形中
from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.faker import Faker
def bar_with_axis_off():
bar = Bar(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
bar.add_xaxis(Faker.choose())
bar.add_yaxis('', Faker.values())
# 碰上类目标签过长的时候,可以选择关闭坐标轴,直接显示在图形中
bar.set_series_opts(label_opts=opts.LabelOpts(position='insideLeft', formatter='{b}:{c}'))
bar.set_global_opts(xaxis_opts=opts.AxisOpts(is_show=False),
yaxis_opts=opts.AxisOpts(is_show=False))
bar.reversal_axis()
return bar
chart = bar_with_axis_off()
chart.render_notebook()
3.更改坐标轴数据类型
x轴默认数据类型是使用离散型,在使用散点图的时候可调整为数值型
from pyecharts.charts import *
from pyecharts import options as opts
import random
x_data = [random.randint(0, 20) for _ in range(100)]
y_data = [random.randint(0, 50) for _ in range(100)]
def scatter_with_value_xaxis():
scatter = Scatter(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
scatter.add_xaxis(x_data)
scatter.add_yaxis('', y_data)
# X轴默认数据类型为离散数据,设置为数值型
scatter.set_global_opts(xaxis_opts=opts.AxisOpts(type_="value"))
return scatter
chart = scatter_with_value_xaxis()
chart.render_notebook()
4.双Y轴【直方图&折线图】
实际是Bar和Line两个图表共用同一套坐标体系,将Bar和Line分别指向不同的Y轴
from pyecharts.charts import *
from pyecharts import options as opts
import random
x_data = ['香蕉', '梨子', '水蜜桃', '核桃', '西瓜', '苹果']
y_data_1 = [random.randint(10, 50) for _ in range(len(x_data))]
y_data_2 = [random.randint(100, 500) for _ in range(len(x_data))]
def bar_line_combine_with_two_axis():
bar = Bar(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
bar.add_xaxis(x_data)
# 添加一个Y轴
bar.extend_axis(yaxis=opts.AxisOpts())
bar.add_yaxis('左边Y轴', y_data_1, yaxis_index=0)
line = Line(init_opts=opts.InitOpts(theme='light',
width='1000px',
height='600px'))
line.add_xaxis(x_data)
# 将line数据通过yaxis_index指向后添加的Y轴
line.add_yaxis('右边Y轴', y_data_2, yaxis_index=1)
bar.overlap(line)
return bar
chart = bar_line_combine_with_two_axis()
chart.render_notebook()
5.直方图——双Y轴
from pyecharts.charts import *
from pyecharts import options as opts
import random
x_data = ['香蕉', '梨子', '水蜜桃', '核桃', '西瓜', '苹果']
y_data_1 = [random.randint(10, 50) for _ in