# coding=utf-8 from example.commons import Collector, Faker from pyecharts import options as opts from pyecharts.charts import Bar, Line, Page C = Collector() v1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3] v2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3] v3 = [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2] @C.funcs def overlap_bar_line() -> Bar: bar = ( Bar() .add_xaxis(Faker.months) .add_yaxis("蒸发量", v1) .add_yaxis("降水量", v2) .extend_axis(yaxis=opts.AxisOpts(formatter="{value} °C", interval=5)) .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts( title_opts=opts.TitleOpts(title="Grid-bar+line"), yaxis_opts=opts.AxisOpts(formatter="{value} ml"), ) ) line = Line().add_xaxis(Faker.months).add_yaxis("平均温度", v3, yaxis_index=1) bar.overlap(line) return bar Page().add(*[fn() for fn, _ in C.charts]).render()