Сегодня начальник придумал прихоть и подумал, что скучно просто смотреть в эксель лист, поэтому ему пришлось нанести данные на карту, поэтому мы сегодня будем учиться, как нарисовать точечную диаграмму на карте, основной контент сегодня такой
- Рисование с использованием географической информации, поставляемой с Curry
- Обработка исключений
Затем, во втором выпуске, мы изучим, как импортировать информацию о широте и долготе.
Сегодня мы изменим библиотеку, а не изменим бренд Matplotlib, давайте попробуем потрясающую версию Echarts для Python.
Сначала давайте посмотрим на официальный пример
Очень круто, можно просто нарисовать точки разброса на карте, и добавить фильтр, который можно дергать
Давайте посмотрим на код официального примера:
from pyecharts import Geo
data = [
("海门", 9),("鄂尔多斯", 12),("招远", 12),("舟山", 12),("齐齐哈尔", 14),("盐城", 15),
("赤峰", 16),("青岛", 18),("乳山", 18),("金昌", 19),("泉州", 21),("莱西", 21),
("日照", 21),("胶南", 22),("南通", 23),("拉萨", 24),("云浮", 24),("梅州", 25),
("文登", 25),("上海", 25),("攀枝花", 25),("威海", 25),("承德", 25),("厦门", 26),
("汕尾", 26),("潮州", 26),("丹东", 27),("太仓", 27),("曲靖", 27),("烟台", 28),
("福州", 29),("瓦房店", 30),("即墨", 30),("抚顺", 31),("玉溪", 31),("张家口", 31),
("阳泉", 31),("莱州", 32),("湖州", 32),("汕头", 32),("昆山", 33),("宁波", 33),
("湛江", 33),("揭阳", 34),("荣成", 34),("连云港", 35),("葫芦岛", 35),("常熟", 36),
("东莞", 36),("河源", 36),("淮安", 36),("泰州", 36),("南宁", 37),("营口", 37),
("惠州", 37),("江阴", 37),("蓬莱", 37),("韶关", 38),("嘉峪关", 38),("广州", 38),
("延安", 38),("太原", 39),("清远", 39),("中山", 39),("昆明", 39),("寿光", 40),
("盘锦", 40),("长治", 41),("深圳", 41),("珠海", 42),("宿迁", 43),("咸阳", 43),
("铜川", 44),("平度", 44),("佛山", 44),("海口", 44),("江门", 45),("章丘", 45),
("肇庆", 46),("大连", 47),("临汾", 47),("吴江", 47),("石嘴山", 49),("沈阳", 50),
("苏州", 50),("茂名", 50),("嘉兴", 51),("长春", 51),("胶州", 52),("银川", 52),
("张家港", 52),("三门峡", 53),("锦州", 54),("南昌", 54),("柳州", 54),("三亚", 54),
("自贡", 56),("吉林", 56),("阳江", 57),("泸州", 57),("西宁", 57),("宜宾", 58),
("呼和浩特", 58),("成都", 58),("大同", 58),("镇江", 59),("桂林", 59),("张家界", 59),
("宜兴", 59),("北海", 60),("西安", 61),("金坛", 62),("东营", 62),("牡丹江", 63),
("遵义", 63),("绍兴", 63),("扬州", 64),("常州", 64),("潍坊", 65),("重庆", 66),
("台州", 67),("南京", 67),("滨州", 70),("贵阳", 71),("无锡", 71),("本溪", 71),
("克拉玛依", 72),("渭南", 72),("马鞍山", 72),("宝鸡", 72),("焦作", 75),("句容", 75),
("北京", 79),("徐州", 79),("衡水", 80),("包头", 80),("绵阳", 80),("乌鲁木齐", 84),
("枣庄", 84),("杭州", 84),("淄博", 85),("鞍山", 86),("溧阳", 86),("库尔勒", 86),
("安阳", 90),("开封", 90),("济南", 92),("德阳", 93),("温州", 95),("九江", 96),
("邯郸", 98),("临安", 99),("兰州", 99),("沧州", 100),("临沂", 103),("南充", 104),
("天津", 105),("富阳", 106),("泰安", 112),("诸暨", 112),("郑州", 113),("哈尔滨", 114),
("聊城", 116),("芜湖", 117),("唐山", 119),("平顶山", 119),("邢台", 119),("德州", 120),
("济宁", 120),("荆州", 127),("宜昌", 130),("义乌", 132),("丽水", 133),("洛阳", 134),
("秦皇岛", 136),("株洲", 143),("石家庄", 147),("莱芜", 148),("常德", 152),("保定", 153),
("湘潭", 154),("金华", 157),("岳阳", 169),("长沙", 175),("衢州", 177),("廊坊", 193),
("菏泽", 194),("合肥", 229),("武汉", 273),("大庆", 279)]
geo = Geo("全国主要城市空气质量", "data from pm2.5", title_color="#fff",
title_pos="center", width=1200,
height=600, background_color='#404a59')
attr, value = geo.cast(data)
geo.add("", attr, value, visual_range=[0, 200], visual_text_color="#fff",
symbol_size=15, is_visualmap=True)
geo.render()
Код прост:
data = [ ("海门", 9),("鄂尔多斯", 12)]
Данные представляют собой список, завернутый в кортежи, а название места — текст, карта должна иметь свое название места.
geo = Geo("全国主要城市空气质量", "data from pm2.5", title_color="#fff",
title_pos="center", width=1200,
height=600, background_color='#404a59')
Заголовок, подзаголовок, цвет заголовка, позиция, размер и цвет фона определяются в гео, а для цвета используется # 404a59. Этот шестнадцатеричный метод выражения можно найти в Интернете. значение этого шестнадцатеричного числа.
Подробности можно посмотреть в официальном описании параметров в гео
attr, value = geo.cast(data)
Это должен быть метод преобразования формата данных, который поставляется с гео, который написан в официальном документе.
- attr -> list
Имя свойства - value -> list
Значение, соответствующее свойству
Мы видим, что приведение разбивает кортеж на два списка: название места в списке атрибутов и значение в списке значений.
geo.add("", attr, value, visual_range=[0, 200], visual_text_color="#fff",
symbol_size=15, is_visualmap=True)
Дополнение включает в себя детали на картинке, так что я просто скопирую официальную! ! имя легенды
- attr -> list
Имя свойства - value -> list
Значение, соответствующее свойству - type -> str
Тип легенды, 'scatter', 'effectScatter', 'heatmap' являются необязательными. По умолчанию «разброс» - maptype -> str
тип карты. Поддержка Китая, мира, Аньхой, Макао, Пекин, Чунцин, Фуцзянь, Фуцзянь, Ганьсу, Гуандун, Гуанси, Гуанчжоу, Хайнань, Хэбэй, Хэйлунцзян, Хэнань, Хубэй, Хунань, Цзянсу, Цзянси, Цзилинь, Ляонин, Внутренняя Монголия, Нинся, Цинхай, Шаньдун, Шанхай, Шэньси, Шаньси, Сычуань, Тайвань, Тяньцзинь, Гонконг, Синьцзян, Тибет, Юньнань, Чжэцзян иКарта 363 городов второго уровня. Напоминание: при рисовании карт на уровне города слово «город» после названия города следует опускать.Например, не упоминайте «город» в городе Шицзячжуан, то есть «Шицзячжуан». - symbol_size -> int
Размер фигурки маркера. По умолчанию 12 - border_color -> str
Цвет границы карты. По умолчанию "#111" - geo_normal_color -> str
Цвет области карты в нормальном состоянии. По умолчанию "#323c48" - geo_emphasis_color -> str
Цвет выделенной области карты. По умолчанию "#2a333d" - geo_cities_coords -> dict
Определяемая пользователем широта и долгота области, аналогичная словарю, такому как {'Acheng': [126.58, 45.32]}, когда указан этот параметр, он перезапишет исходную предварительно сохраненную информацию о координатах области. - is_roam -> bool
Включить ли масштабирование мышью и панорамирование. По умолчанию Истина
Если вы хотите только включить масштабирование или панорамирование, вы можете установить его на «масштабирование» или «перемещение». Установите значение True, чтобы включить оба
Оглянуться назад очень просто, давайте закинем свои данные и посмотрим, сначала установим пакет
pip install pyecharts
Однако, однако, однако~~~~
Все не так гладко! ! ! ! !
Почему я не могу отобразить карту~~~~? ? ? ? ,
Давайте решим первую проблему: почему у меня не отображается фон карты!
Продолжим листать официальные документы, оказывается: в новой библиотеке нет карты, ее надо устанавливать самому,
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
Хорошо, давайте продолжим, когда мы закончим установку!
нани,
Карта по-прежнему не отображается! ~! ~!
Наконец, после моих запросов и экспериментов, я наконец нашел решение! ! !
Удалил эти три пакета, переустановил и вырвало кровью
Хорошо, мы завершили первый этап обучения, изучили официальные примеры, а затем мы попробуем использовать нашу собственную таблицу широты и долготы excel и данные на следующем этапе, а затем сгенерируем