• 04 pyechars 地理图表(示例代码+效果图)


    目录

    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,
    )

  • 相关阅读:
    云部署家里的服务器
    GO学习之 远程过程调用(RPC)
    GitLab CI/CD系列教程(七):gitlab变量
    什么是SNMP监控
    Python数据可视化-----制作全球地震散点图
    想学设计模式、想搞架构设计,先学学 UML 系统建模吧
    C++前缀和算法:合并石头的最低成本原理、源码及测试用例
    [ROS2系列] ubuntu 20.04测试rtabmap
    45 个 Git 经典操作场景
    java-php-python-至臻阁古董拍卖网计算机毕业设计
  • 原文地址:https://blog.csdn.net/c_lanxiaofang/article/details/126022409