text: # coding=utf-8
  from example.commons import Collector, Faker
  from pyecharts import options as opts
  from pyecharts.charts import Geo, Page
  from pyecharts.globals import ChartType, SymbolType
  
  C = Collector()
  
  
  @C.funcs
  def geo_base() -> Geo:
      c = (
          Geo()
          .add_schema(maptype="china")
          .add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())])
          .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
          .set_global_opts(
              visualmap_opts=opts.VisualMapOpts(),
              title_opts=opts.TitleOpts(title="Geo-基本示例"),
          )
      )
      return c
  
  
  @C.funcs
  def geo_visualmap_piecewise() -> Geo:
      c = (
          Geo()
          .add_schema(maptype="china")
          .add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())])
          .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
          .set_global_opts(
              visualmap_opts=opts.VisualMapOpts(is_piecewise=True),
              title_opts=opts.TitleOpts(title="Geo-VisualMap（分段型）"),
          )
      )
      return c
  
  
  @C.funcs
  def geo_effectscatter() -> Geo:
      c = (
          Geo()
          .add_schema(maptype="china")
          .add(
              "geo",
              [list(z) for z in zip(Faker.provinces, Faker.values())],
              type_=ChartType.EFFECT_SCATTER,
          )
          .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
          .set_global_opts(title_opts=opts.TitleOpts(title="Geo-EffectScatter"))
      )
      return c
  
  
  @C.funcs
  def geo_heatmap() -> Geo:
      c = (
          Geo()
          .add_schema(maptype="china")
          .add(
              "geo",
              [list(z) for z in zip(Faker.provinces, Faker.values())],
              type_=ChartType.HEATMAP,
          )
          .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
          .set_global_opts(
              visualmap_opts=opts.VisualMapOpts(),
              title_opts=opts.TitleOpts(title="Geo-HeatMap"),
          )
      )
      return c
  
  
  @C.funcs
  def geo_guangdong() -> Geo:
      c = (
          Geo()
          .add_schema(maptype="广东")
          .add(
              "geo",
              [list(z) for z in zip(Faker.guangdong_city, Faker.values())],
              type_=ChartType.HEATMAP,
          )
          .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
          .set_global_opts(
              visualmap_opts=opts.VisualMapOpts(),
              title_opts=opts.TitleOpts(title="Geo-广东地图"),
          )
      )
      return c
  
  
  @C.funcs
  def geo_lines() -> Geo:
      c = (
          Geo()
          .add_schema(maptype="china")
          .add(
              "",
              [("广州", 55), ("北京", 66), ("杭州", 77), ("重庆", 88)],
              type_=ChartType.EFFECT_SCATTER,
              color="white",
          )
          .add(
              "geo",
              [("广州", "上海"), ("广州", "北京"), ("广州", "杭州"), ("广州", "重庆")],
              type_=ChartType.LINES,
              effect_opts=opts.EffectOpts(
                  symbol=SymbolType.ARROW, symbol_size=6, color="blue"
              ),
              linestyle_opts=opts.LineStyleOpts(curve=0.2),
          )
          .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
          .set_global_opts(title_opts=opts.TitleOpts(title="Geo-Lines"))
      )
      return c
  
  
  @C.funcs
  def geo_lines_background() -> Geo:
      c = (
          Geo()
          .add_schema(
              maptype="china",
              itemstyle_opts=opts.ItemStyleOpts(color="#323c48", border_color="#111"),
          )
          .add(
              "",
              [("广州", 55), ("北京", 66), ("杭州", 77), ("重庆", 88)],
              type_=ChartType.EFFECT_SCATTER,
              color="white",
          )
          .add(
              "geo",
              [("广州", "上海"), ("广州", "北京"), ("广州", "杭州"), ("广州", "重庆")],
              type_=ChartType.LINES,
              effect_opts=opts.EffectOpts(
                  symbol=SymbolType.ARROW, symbol_size=6, color="blue"
              ),
              linestyle_opts=opts.LineStyleOpts(curve=0.2),
          )
          .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
          .set_global_opts(title_opts=opts.TitleOpts(title="Geo-Lines-background"))
      )
      return c
  
  
  Page().add(*[fn() for fn, _ in C.charts]).render()
  