Для визуальных карт,PyechartsРаньше он чаще всего использовался Сяо Ф.
Должны быть какие-то сайты, готовые инструменты, не нужно набирать код.
Статья о визуализации мобильного телефона 5G также является картой, созданной с помощью Pyecharts~
И дляMatplotlib, в настоящее время Сяо Ф. не использовал его для рисования карты.
Итак, когда я проверил соответствующую информацию, я нашел колесо, сделанное большим парнем.
Python+Selenium+Matplotlib для визуализации карты Китая.
Данные карты исходят от Министерства гражданских дел, что является достоверным и надежным.
адрес проекта:
git ee.com/machine selection/M…
Поскольку Сяо Ф. раньше использовал «GitHub» для сохранения кода, он вообще не регистрировал «Gitee».
Авторский код и связанные с ним данные загружаются в «Gitee», что требует регистрации и скачивания.
Я не хочу регистрировать столько аккаунтов, поэтому проверил, можно ли скачать код проекта без авторизации.
CURL — это командная строка, работающая с синтаксисом URL.инструмент для передачи файлов.
# 在仓库地址(https://gitee.com/jixuanfan/Map-of-China)
# 后面拼接/repository/archive/master.zip
# 下载本例项目代码
curl -o data.zip https://gitee.com/jixuanfan/Map-of-China/repository/archive/master.zip
Виндовс возможно нужно будет установить, это еще честно зарегистрировать аккаунт, а потом скачать код проекта.
Mac и Linux должны иметь встроенный CURL, просто используйте команду напрямую без установки.
/ 01 / Сбор картографических данных
Get_Map, основанный на поисковом роботе Python, в основном использует Selenium + обычный.
SeleniumЭто инструмент автоматизированного тестирования для тестирования веб-сайтов. Здесь мы в основном используем его для имитации операций браузера для получения картографических данных.
Учебники по установке доступны в Интернете.Рекомендуется использовать Google Chrome.Файл драйвера и версия браузера должны совпадать.
Получите два адреса интерфейса для картографических данных.
# 首页URL,获取当前所有行政区划的代码
http://xzqh.mca.gov.cn/map
# 查询URL,获取国家或省市的具体地图数据
http://xzqh.mca.gov.cn/defaultQuery?
Во-первых, чтобы получитьКод административной единицы, минимум должен быть на уровне округа.
Для рисования различных типов карт необходимы следующие функции сбора данных.
Административный код не ясен, просто проверьте его онлайн~
import Map_of_China as Map
# 创建获取地图数据对象
M=Map.Get_Map()
# 获取首页全国各省的地图数据
M.Get_country()
# 获取一组省份内各地级行政区划的数据
M.Get_provinces([32,43])
# 自动获取全国尚未获取的省份数据
M.Get_provinces_auto()
# 获取一组地级市内各县级行政区划的数据
M.Get_cities([3201,3203])
# 自动获取某个省尚未获取的县级行政区划数据
M.Get_cities_auto(32)
# 获取全国所有县级行政区划的数据(合并在一张地图中)
M.Get_country_county()
Данные в основном включают форму, цвет формы, контур формы, текст, положение текста, форму точки метки, положение точки метки и т. д.
Конкретный код сканирования, анализ данных и соответствующие параметры функций см.Map_of_China.pyфайл известен.
/ 02 / Отображение данных карты
Draw_Map рисует карты на основе Matplotlib.
01. Нарисуйте контур административного деления на уровне провинций/префектур/уездов.
import Map_of_China as Map
# 创建获取地图数据对象
M = Map.Get_Map()
# 创建绘制地图对象
D = Map.Draw_Map()
# #获取首页全国各省的地图数据
M.Get_country()
# 江苏地图
D.Draw_single_shape('Data/Country/320000.txt', LC=[116, 169, 221],
FC=[96, 139, 219], BC='w', lw=2, title='江苏轮廓',
img_path='jiansu.jpg')
# 获取各省份内各地级行政区划的数据
M.Get_provinces([32])
# 南京地图
D.Draw_single_shape('Data/Province/32-江苏/320100.txt', LC='k', FC=None,
title='南京轮廓', img_path='nanjing.jpg')
Получены следующие результаты.
Параметры, которые могут быть установлены функцией, включают линию, заливку, цвет фона, ширину линии, заголовок, путь сохранения изображения и т. д.
02. Нарисуйте карту страны
import Map_of_China as Map
# 创建获取地图数据对象
M = Map.Get_Map()
# 创建绘制地图对象
D = Map.Draw_Map()
# 绘制全国地图
D.Draw_country(FC=True, img_path='china.jpg', arg={'provName': False,
'city_name': True, 'city_pos': True, 'sea': False}, title='中国地图')
Поскольку были просканированы картографические данные всей страны, код для загрузки данных здесь опущен.
Получены следующие результаты.
схема окраски,По умолчанию установлено соответствие цвета на официальном сайте МВД..
Некоторые параметры совпадают с контурным графиком, но добавлены некоторые новые параметры.
НапримерКарта Южно-Китайского моря, отображать название провинции, цвет названия провинции и т. д.
03. Нарисуйте карту провинции
import Map_of_China as Map
# 创建获取地图数据对象
M = Map.Get_Map()
# 获取广东省份内各地级行政区划的数据
M.Get_provinces([44])
# 创建绘制地图对象
D = Map.Draw_Map()
# 绘制广东省地图
D.Draw_province('广东', FC=True, LC='w', arg={'other': True, 'city_pos': True, 'city_name': True},
img_path='guangdong.jpg')
Для провинциальных данных предыдущая маленькая буква F сканирует только провинцию Цзянсу, поэтому здесь нам нужно сканировать картографические данные провинции Гуандун.
Получены следующие результаты.
Параметры, соответствующие функции рисования карты провинции:
код может быть двухзначным кодом или названием провинции, здесь он установлен на «Гуандун».
Также функция содержит параметры для отрисовки тепловой карты, data и by_val.
в аргументедля другого установлено значение Falseвремя, производительностьНе показывать соседние провинции или городаКарта, параметр по умолчанию True, который отображается.
04. Карта административных единиц уровня префектуры
import Map_of_China as Map
# 创建获取地图数据对象
M = Map.Get_Map()
# 获取南京、深圳行政区划的数据
M.Get_cities([3201, 4403])
# 创建绘制地图对象
D = Map.Draw_Map()
# 南京地图(默认样式)
D.Draw_city('3201', img_path='nanjing_city.jpg')
# 深圳地图(自定义样式)
D.Draw_city('深圳', FC=True, LC='w', arg={'other': True, 'city_pos': True, 'city_name': True},
img_path='shenzhen.jpg')
Получены следующие результаты.
Код здесь представляет собой четырехзначный код города уровня префектуры.
05. Нарисуйте тепловую карту
Залейте разные области разными цветами в зависимости от размера значения, но, к сожалению, легенда отсутствует.
import Map_of_China as Map
# 创建获取地图数据对象
M = Map.Get_Map()
# 创建绘制地图对象
D = Map.Draw_Map()
# 文件路径
src = 'Example/GDP-2018.csv'
# 按数据的相对大小(排名)显示
D.Show_data(src, by_val=False, arg={'default_color': [0.6, 0.6, 0.6], 'sea': False},
img_path='gdp.jpg', title='2018年各省市GDP')
Получены следующие результаты.
Конкретный формат содержимого файла CSV выглядит следующим образом.
Первый столбец — это название или код области, а второй столбец — это значение.
Модуль обработки данных находится в файле Map_of_China.py.
Обычно следует выбирать параметр by_val, абсолютный размер и относительный размер.абсолютный размеротображается таким образом.
Это авторская тепловая карта, легенды нет, жду обновления~
# 省级数据
D.Show_data('Example/江苏人口2018.txt', '32', by_val=True, title='江苏人口2018',
img_path='jiangsu_2018_1.jpg')
# 配置地图中的样式
D.Show_data('Example/江苏人口2018.txt', '32', by_val=True, LC='w', title='江苏人口2018',
arg={'city_name': True, 'city_pos': True, 'other': True},
img_path='jiangsu_2018_2.jpg')
Также можно использовать данные в формате TXT.
06. Нарисуйте пузырьковую диаграмму
# 气泡图
D.Bubble(src='Example/GDP-2018.csv', title='2018年各省市GDP', img_path='GDP_bubble.png')
Получены следующие результаты.
Цвет пузырька по умолчанию желтый, параметры можно настроить.
Обнаружил, что это похоже на Pyecharts, я полагаю, что оно модифицируетсяцвет карты,Шрифт и положение текстаПосле этого карта будет выглядеть лучше!
Однако из-за нехватки времени Сяо Ф расскажет об этом в следующем выпуске~
Есть еще несколько функций, подождите, пока большой парень обновится~
Тысячи рек и гор всегда влюблены.Можешь нажать "Нравится"?