{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "\n", "\n", "### 复旦大学新闻学院新媒体硕士课程\n", "***\n", "***\n", "# 使用folium做地图可视化\n", "***\n", "***\n", "\n", "王成军 \n", "\n", "wangchengjun@nju.edu.cn\n", "\n", "计算传播网 http://computational-communication.com\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2019-07-28T08:28:03.706189Z", "start_time": "2019-07-28T08:27:53.672350Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting folium\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/72/ff/004bfe344150a064e558cb2aedeaa02ecbf75e60e148a55a9198f0c41765/folium-0.10.0-py2.py3-none-any.whl (91kB)\n", "\u001b[K 100% |████████████████████████████████| 92kB 72kB/s ta 0:00:0111\n", "\u001b[?25hCollecting branca>=0.3.0 (from folium)\n", " Using cached https://files.pythonhosted.org/packages/63/36/1c93318e9653f4e414a2e0c3b98fc898b4970e939afeedeee6075dd3b703/branca-0.3.1-py3-none-any.whl\n", "Requirement already satisfied: numpy in /Users/datalab/anaconda3/lib/python3.7/site-packages (from folium) (1.16.2)\n", "Requirement already satisfied: requests in /Users/datalab/anaconda3/lib/python3.7/site-packages (from folium) (2.21.0)\n", "Requirement already satisfied: jinja2>=2.9 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from folium) (2.10)\n", "Requirement already satisfied: six in /Users/datalab/anaconda3/lib/python3.7/site-packages (from branca>=0.3.0->folium) (1.12.0)\n", "Requirement already satisfied: certifi>=2017.4.17 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from requests->folium) (2019.3.9)\n", "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from requests->folium) (3.0.4)\n", "Requirement already satisfied: idna<2.9,>=2.5 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from requests->folium) (2.8)\n", "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from requests->folium) (1.24.1)\n", "Requirement already satisfied: MarkupSafe>=0.23 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from jinja2>=2.9->folium) (1.1.1)\n", "Installing collected packages: branca, folium\n", "Successfully installed branca-0.3.1 folium-0.10.0\n" ] } ], "source": [ "!pip install folium" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2019-07-28T08:28:19.366287Z", "start_time": "2019-07-28T08:28:16.312732Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting vincent\n", " Using cached https://files.pythonhosted.org/packages/11/bf/a12ecaa21a2e376a16de67e09f64a38a4acd95e04e5dc35ad2f13a6f0bfd/vincent-0.4.4.tar.gz\n", "Requirement already satisfied: pandas in /Users/datalab/anaconda3/lib/python3.7/site-packages (from vincent) (0.24.2)\n", "Requirement already satisfied: pytz>=2011k in /Users/datalab/anaconda3/lib/python3.7/site-packages (from pandas->vincent) (2018.9)\n", "Requirement already satisfied: python-dateutil>=2.5.0 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from pandas->vincent) (2.8.0)\n", "Requirement already satisfied: numpy>=1.12.0 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from pandas->vincent) (1.16.2)\n", "Requirement already satisfied: six>=1.5 in /Users/datalab/anaconda3/lib/python3.7/site-packages (from python-dateutil>=2.5.0->pandas->vincent) (1.12.0)\n", "Building wheels for collected packages: vincent\n", " Building wheel for vincent (setup.py) ... \u001b[?25ldone\n", "\u001b[?25h Stored in directory: /Users/datalab/Library/Caches/pip/wheels/4c/0d/8a/65f34c765c6094a71cce3e42a49a26533eef61695e9b505f03\n", "Successfully built vincent\n", "Installing collected packages: vincent\n", "Successfully installed vincent-0.4.4\n" ] } ], "source": [ "!pip install vincent" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2019-07-28T08:28:22.108784Z", "start_time": "2019-07-28T08:28:22.098195Z" }, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/Users/datalab/anaconda3/lib/python3.7/site-packages/folium/__init__.py\n", "0.10.0\n" ] } ], "source": [ "import folium, jinja2, vincent\n", "from IPython.display import IFrame\n", "from IPython.core.display import HTML\n", "print(folium.__file__)\n", "print(folium.__version__)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# 读入数据" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2019-07-28T08:27:39.711648Z", "start_time": "2019-07-28T08:27:39.705462Z" }, "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "import pickle\n", "\n", "node_pkl = open('../data/nodeLoc.pkl', 'rb')\n", "nodeLoc = pickle.load(node_pkl)\n", "node_pkl.close()\n", "\n", "edge_pkl = open('../data/edgeLoc.pkl', 'rb')\n", "edgeLoc = pickle.load(edge_pkl)\n", "edge_pkl.close()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# 绘制地图" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2019-07-28T08:28:26.385292Z", "start_time": "2019-07-28T08:28:26.369370Z" }, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "text/html": [ "