当前位置:   article > 正文

04 pyechars 地理图表(示例代码+效果图)_1.使用地理坐标系geo绘制基本中国地图,并通过faker数据集的provinces生成省份数

1.使用地理坐标系geo绘制基本中国地图,并通过faker数据集的provinces生成省份数

目录

1 GEO-地理坐标系

2 MAP-地图

3 BMAP-百度地图

1 Geo()

2 def add_schema

3 def add()


1 GEO-地理坐标系

  1. """
  2. 学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:732481539
  3. 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
  4. """
  5. import random
  6. from pyecharts.charts import Geo
  7. from pyecharts.faker import Faker
  8. province = [
  9. '广东',
  10. '湖北',
  11. '湖南',
  12. '四川',
  13. '重庆',
  14. '黑龙江',
  15. '浙江',
  16. '山西',
  17. '河北',
  18. '安徽',
  19. '河南',
  20. '山东',
  21. '西藏']
  22. data = [(i, random.randint(10, 100)) for i in province]
  23. geo = (
  24. Geo()
  25. .add_schema(maptype="china")
  26. .add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())])
  27. # .add("", data)
  28. )
  29. print([list(z) for z in zip(Faker.provinces, Faker.values())])
  30. geo.render("geo.html")

2 MAP-地图

  1. import random
  2. from pyecharts.charts import Map
  3. province = [
  4. '广东',
  5. '湖北',
  6. '湖南',
  7. '四川',
  8. '重庆',
  9. '黑龙江',
  10. '浙江',
  11. '山西',
  12. '河北',
  13. '安徽',
  14. '河南',
  15. '山东',
  16. '西藏']
  17. data = [(i, random.randint(10, 100)) for i in province]
  18. map_ = (
  19. Map()
  20. .add("", data, 'china')
  21. )
  22. map_.render("map.html")

3 BMAP-百度地图

  1. import random
  2. from pyecharts.charts import BMap
  3. province = [
  4. '广东',
  5. '湖北',
  6. '湖南',
  7. '四川',
  8. '重庆',
  9. '黑龙江',
  10. '浙江',
  11. '山西',
  12. '河北',
  13. '安徽',
  14. '河南',
  15. '山东',
  16. '西藏']
  17. data = [(i, random.randint(50, 150)) for i in province]
  18. bmap = (
  19. BMap()
  20. .add_schema(baidu_ak="输入你的百度AK", center=[120.13066322374, 30.240018034923])
  21. .add("", data)
  22. )
  23. bmap.render("bmap.html")

1 Geo()

class Geo(
    # 初始化配置项,参考 `global_options.InitOpts`
    init_opts: opts.InitOpts = opts.InitOpts()

    # 是否忽略不存在的坐标,默认值为 False,即不忽略
    is_ignore_nonexistent_coord: bool = False
)

2 def add_schema

def add_schema(
    # 地图类型,具体参考 pyecharts.datasets.map_filenames.json 文件
    maptype: str = "china",

    # 是否开启鼠标缩放和平移漫游。
    is_roam: bool = True,

    # 当前视角的缩放比例。默认为 1
    zoom: Optional[Numeric] = None,

    # 当前视角的中心点,用经纬度表示。例如:center: [115.97, 29.71]
    center: Optional[Sequence] = None,

    # 参数用于 scale 地图的长宽比。
    aspect_scale: types.Numeric = 0.75,

    # 二维数组,定义定位的左上角以及右下角分别所对应的经纬度。
    bounding_coords: types.Optional[types.Sequence[types.Numeric]] = None,

    # 最小的缩放值。
    min_scale_limit: types.Optional[types.Numeric] = None,

    # 最大的缩放值。
    max_scale_limit: types.Optional[types.Numeric] = None,

    # 默认是 'name',针对 GeoJSON 要素的自定义属性名称,作为主键用于关联数据点和 GeoJSON 地理要素。
    name_property: str = "name",

    # 选中模式,表示是否支持多个选中,默认关闭,支持布尔值和字符串。
    # 字符串取值可选'single'表示单选,或者'multiple'表示多选。
    selected_mode: types.Union[bool, str] = False,

    # pyecharts 暂时没有提供 left/top/right/bottom 的配置
    # layoutCenter 和 layoutSize 提供了除了 left/right/top/bottom/width/height 之外的布局手段。
    # 在使用 left/right/top/bottom/width/height 的时候
    # 可能很难在保持地图高宽比的情况下把地图放在某个盒形区域的正中间,并且保证不超出盒形的范围。
    # 此时可以通过 layoutCenter 属性定义地图中心在屏幕中的位置,layoutSize 定义地图的大小。
    # 如下示例
    # layoutCenter: ['30%', '30%'],
    # // 如果宽高比大于 1 则宽度为 100,如果小于 1 则高度为 100,保证了不超过 100x100 的区域
    # layoutSize: 100
    layout_center: types.Optional[types.Sequence[str]] = None,

    # 地图的大小,见 layoutCenter。支持相对于屏幕宽高的百分比或者绝对的像素大小。
    layout_size: types.Union[str, types.Numeric] = None,

    # # 标签配置项,参考 `series_options.LabelOpts`
    label_opts: Union[opts.LabelOpts, dict, None] = None,

    # 地图区域的多边形 图形样式。
    itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] =None,

    # 高亮状态下的多边形样式
    emphasis_itemstyle_opts: Union[opts.ItemStyleOpts, dict,None] = None,

    # 高亮状态下的标签样式。
    emphasis_label_opts: Union[opts.LabelOpts, dict, None] =None,
):

3 def add()

def add(
    # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
    series_name: str,

    # 数据项 (坐标点名称,坐标点值)
    data_pair: Sequence,

    # Geo 图类型,有 scatter, effectScatter, heatmap, lines 4 种,建议使用
    # from pyecharts.globals import GeoType
    # GeoType.GeoType.EFFECT_SCATTER,GeoType.HEATMAP,GeoType.LINES
    type_: str = "scatter",

    # 是否选中图例
    is_selected: bool = True,

    # 标记图形形状
    symbol: Optional[str] = None,

    # 标记的大小
    symbol_size: Numeric = 12,

    # 每个点的大小,在地理坐标系(coordinateSystem: 'geo')上有效。
    blur_size: types.Numeric = 20,

    # 每个点模糊的大小,在地理坐标系(coordinateSystem: 'geo')上有效。
    point_size: types.Numeric = 20,

    # 系列 label 颜色
    color: Optional[str] = None,

    # 是否是多段线,在画 lines 图情况下
    is_polyline: bool = False,

    # 是否启用大规模线图的优化,在数据图形特别多的时候(>=5k)可以开启
    is_large: bool = False,

    # 特效尾迹的长度。取从 0 到 1 的值,数值越大尾迹越长。默认值 0.2
    trail_length: Numeric = 0.2,

    # 开启绘制优化的阈值。
    large_threshold: Numeric = 2000,

    # 配置该系列每一帧渲染的图形数
    progressive: types.Numeric = 400,

    # 启用渐进式渲染的图形数量阈值,在单个系列的图形数量超过该阈值时启用渐进式渲染。
    progressive_threshold: types.Numeric = 3000,

    # 标签配置项,参考 `series_options.LabelOpts`
    label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),

    # 涟漪特效配置项,参考 `series_options.EffectOpts`
    effect_opts: Union[opts.EffectOpts, dict] = opts.EffectOpts(),

    # 线样式配置项,参考 `series_options.LineStyleOpts`
    linestyle_opts: Union[opts.LineStyleOpts, dict] = opts.LineStyleOpts(),

    # 提示框组件配置项,参考 `series_options.TooltipOpts`
    tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,

    # 图元样式配置项,参考 `series_options.ItemStyleOpts`
    itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,

    # 这个配置相对非常复杂(参照地址: https://www.echartsjs.com/zh/option.html#series-custom.renderItem)
    render_item: types.JsCode = None,

    # 这个配置相对非常复杂(参照地址: https://www.echartsjs.com/zh/option.html#series-custom.encode)
    encode: types.Union[types.JsCode, dict] = None,
)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/286599
推荐阅读
相关标签
  

闽ICP备14008679号