DataJam

柱状图+条形图组合

 1 from pyecharts.charts import Bar,Line
 2 from pyecharts import options as opts
 3 
 4 #x_data = ["婴幼儿(0到6岁)", "少儿(7到12岁)", "青少年(13到17岁)", "青年(18到45岁)", "中年(46到60岁)", "老年(60岁以上)"]
 5 x_data = ["0到6岁", "7到12岁", "13到17岁", "18到45岁", "46到60岁", "60岁以上"]
 6
 7 y_data = [1800, 1000, 13000, 800, 40009, 2000]
 8 def bar_charts()->Bar:
 9     bar1 = (
10         Bar(init_opts=opts.InitOpts(width='1000px',height='500px'))        # 示例对象
11         .add_xaxis(x_data)        # x轴数据
12         .add_yaxis("人口",y_data,color='#1a2933',category_gap="50%" )    # 图例名称 + y轴数据+颜色+图间隔
13         #.add_yaxis("商家B",B)
14         # 全局配置:标题/副标题
15         .set_global_opts(title_opts=opts.TitleOpts(title="年龄分段"),
16                          #tooltip_opts=opts.TooltipOpts(trigger='axis',axis_pointer_type='cross'), # 指示器类型,十字/阴影/直线/无
17                          #toolbox_opts=opts.ToolboxOpts(
18                                                #is_show = True,      )
19                         )
20     
21         # bar 拓展
22         .extend_axis(
23                      yaxis=opts.AxisOpts(              # 右侧y轴标签
24                                         name='人口数',
25                                         type_='value',  # 类型
26                                         min_=0,
27                                         max_=50000,
28                                         interval=10000,   # 间隔
29                                         axislabel_opts=opts.LabelOpts(formatter='{value}人')  # 标签显示
30                                         
31                                         )
32                       )
33            )
34     
35     return bar1
36 
37 
38 def line_charts()->Line():
39     line1=(
40            Line()
41           .add_xaxis(x_data)
42           .add_yaxis('人口数',y_data,yaxis_index=1,   # 线图用右侧索引,因此为1
43                      label_opts=opts.LabelOpts(is_show=False),is_smooth=True)
44           )
45     return line1
46     
47 bar1=bar_charts()
48 line1=line_charts()
49     
50 # line1.render_notebook()
51 bar1.overlap(line1).render_notebook() 

 

posted on 2021-06-03 14:56  DataJam  阅读(259)  评论(0)    收藏  举报

导航