把时间线拉回到 2015 年 4 月 13 日,一位河南省实验中学的心里老师在辞职信上写下了「世界那么大,我想去看看」这句话,后来爆红网络,我想这位心里老师当时写这句话的时候肯定没想到这句只有十个字的话,成为了当年的网络经典语录,成为了我们每个人对那个年代的回忆。

这句话直接导致了当年很多营销号出来炒作概念,乱七八糟瞎炒一气,蛊惑了不知道多少年轻人当年自认为潇洒的裸辞掉工作,一个人跑出去看世界。

可惜的是当年脑子一热裸辞掉工作跑出去看世界的人,不知道有多少人还能稳定的着陆。忽然想起来不知道在哪看到的一句话 「不是工作需要你,而是你需要一份工作」

大家都是成年人,做决定前最好能自己多思考几分钟,仔细想想自己是否能承担后果。

我们想要出去看世界代价有点高,但是 Python 想看世界不是一般的简单,我们只需要用到一个 pyecharts ,就可以让 Python 想看啥看啥。

安装

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

pyecharts 的安装非常简单,只需要一句话:

pip install pyecharts

pyecharts 环境:

  • Python3.6+

pyecharts 文档地址:https://pyecharts.org/#/zh-cn/intro

pyecharts 示例代码:https://github.com/pyecharts/pyecharts-gallery

看世界

pyecharts 为我们提供了地图组件 Map ,我们可以直接使用 Map 组件来看世界。

接下来我们来看下如何使用 pyecharts 的 Map 组件来画地图。

以下示例均参考自官方示例

Map 组件的使用非常简单,我们可以先看下世界地图:

import pyecharts.options as opts
from pyecharts.charts import MapGlobe
from pyecharts.faker import POPULATION data = [x for _, x in POPULATION[1:]]
low, high = min(data), max(data) c = (
MapGlobe()
.add_schema()
.add(
maptype="world",
series_name="World Population",
data_pair=POPULATION[1:],
is_map_symbol_show=False,
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
min_=low,
max_=high,
range_text=["max", "min"],
is_calculable=True,
range_color=["lightskyblue", "yellow", "orangered"],
) )
.render("map_globe.html")
)

世界看的不想看了还能看看我们伟大的祖国,代码也很简单:

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType c = (
Map(init_opts=opts.InitOpts(
theme=ThemeType.DARK,
bg_color='#404a59'
))
.add(
"中国地图",
[list(z) for z in zip(Faker.provinces, Faker.values())],
"china"
)
.set_global_opts(
title_opts=opts.TitleOpts(title="中国地图-示例"),
visualmap_opts=opts.VisualMapOpts(),
)
.render("china_map.html")
)

再来一个我生活的城市上海的地图:

from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.globals import ThemeType shanghai_list = ['黄浦区', '徐汇区', '长宁区', '静安区', '普陀区', '虹口区', '杨浦区', '闵行区', '宝山区', '嘉定区', '金山区', '松江区', '青浦区', '奉贤区', '崇明区', '浦东新区'] shanghai_people = [65.38, 108.44, 69.4, 106.28, 128.19, 79.7, 131.27, 254.35, 204.23, 158.89, 80.5, 176.22, 121.9, 115.2, 68.81, 555.02] BAIDU_LINK='https://baike.baidu.com/item/%E4%B8%8A%E6%B5%B7%E8%A1%8C%E6%94%BF%E5%8C%BA%E5%88%92/7426389?fr=aladdin' c = (
Map(init_opts=opts.InitOpts(theme=ThemeType.DARK, bg_color='#404a59', width='1600px', height='900px'))
.add("上海市-常住人口", [list(z) for z in zip(shanghai_list, shanghai_people)], "上海")
.set_global_opts(
title_opts=opts.TitleOpts(
title="上海地图-常住人口(单位:万人)",
subtitle="常住人口数据来自百度百科",
subtitle_link=BAIDU_LINK,
),
visualmap_opts=opts.VisualMapOpts()
)
.render("map_shanghai.html")
)

看完 2D 的有没有觉得不过瘾, Map 组件还未我们提供了 3D 地图的组件 Map3D :

from pyecharts import options as opts
from pyecharts.charts import Map3D
from pyecharts.globals import ThemeType
from pyecharts.globals import ChartType from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "http://127.0.0.1:8000/assets/" c = (
Map3D(init_opts=opts.InitOpts(
theme=ThemeType.DARK,
bg_color='#404a59',
width='1600px',
height='900px'
))
.add_schema(
itemstyle_opts=opts.ItemStyleOpts(
color="#313c48",
opacity=1,
border_width=0.8,
border_color="#000",
),
map3d_label=opts.Map3DLabelOpts(
is_show=True,
text_style=opts.TextStyleOpts(
color="#fff", font_size=16, background_color="rgba(0,0,0,0)"
),
),
emphasis_label_opts=opts.LabelOpts(is_show=True),
light_opts=opts.Map3DLightOpts(
main_color="#fff",
main_intensity=1.2,
is_main_shadow=False,
main_alpha=55,
main_beta=10,
ambient_intensity=0.3,
),
)
.add(series_name="", data_pair="", maptype=ChartType.MAP3D)
.set_global_opts(
title_opts=opts.TitleOpts(title="全国行政区划地图"),
visualmap_opts=opts.VisualMapOpts(is_show=False),
tooltip_opts=opts.TooltipOpts(is_show=True),
)
.render("map3d_china.html")
)

是不是很简单,这些地图我都没有配数据,可以配置上数据做一些看板的展示。

还有一点, pyecharts 的所需要的静态资源,会默认访问 https://assets.pyecharts.org/ 获取(可以查看生成的 html 文件):

如果网络条件不好,地图会展示不出来,我们可以使用官方为我们提供的本地服务:

需要先获取 pyecharts-assets 项目

git clone https://github.com/pyecharts/pyecharts-assets.git

然后进入 pyecharts-assets 目录启动 HTTP file server :

cd pyecharts-assets
python -m http.server # Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
# 默认会在本地 8000 端口启动一个文件服务器

然后我们在代码中配置 pyecharts 全局 HOST:

# 只需要在顶部声明 CurrentConfig.ONLINE_HOST 即可
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "http://127.0.0.1:8000/assets/" # 接下来所有图形的静态资源文件都会来自刚启动的服务器

添加完成后的 html 文件生成后应该是这样的:

这时我们再打开页面,可以看到页面基本上是秒刷新。

需要获取源码的同学可以在公众号后台回复「看世界」获取。

世界这么大,Python 也想去看看的更多相关文章

  1. js世界这么大,闭包想看看

    什么是闭包,为什么要用他?闭包是能够访问其他函数作用域的函数.我们来分析下句子成分(语文大神),闭包是函数,js函数的作用域分为全局作用域,局部作用域,eval作用域,并没有块级作用域形象的讲,每个函 ...

  2. 谁知道哪有比较好的Beijing Milonga?想去参加这样的阿根廷探戈舞会~

    谁知道哪有比较好的Beijing Milonga?想去参加这样的阿根廷探戈舞会~_百度知道     谁知道哪有比较好的Beijing Milonga?想去参加这样的阿根廷探戈舞会~    2009-1 ...

  3. 世界十大OTA公司盘点

    世界十大OTA公司盘点 文/刘照慧(执惠旅游联合创始人,首发百度百家) 全球在线旅游公司(OTA)经过多年发展,已经形成较为成熟的商业模式,各大巨头跑马圈地,格局初现, 这两篇文章就梳理出全球按市值( ...

  4. 2018年要学习的10大Python Web框架

    通过为开发人员提供应用程序开发结构,框架使开发人员的生活更轻松.他们自动执行通用解决方案,缩短开发时间,并允许开发人员更多地关注应用程序逻辑而不是常规元素. 在本文中,我们分享了我们自己的前十大Pyt ...

  5. CSS用足够大的纯色内阴影去覆盖掉谷歌input记住账号或密码时默认出现的黄色背景

    在谷歌浏览器会默认记住账号,而记住账号之后其input的背景会变成黄色,解决的办法如下: input:-webkit-autofill { -webkit-box-shadow: 0px 1000px ...

  6. 常用的十大Python开发工具

    据权威机构统计,Python人才需求量每日高达5000+,但目前市场上会 Python 的程序员少之又少, 竞争小,很容易快速高薪就业.可能你并不太了解常用的十大Python开发工具都有哪些,现在告诉 ...

  7. cmd重启服务器,有时不想去机房,并且远程桌面连接登录不上了

    有时不想去机房,并且远程桌面连接登录不上了,需要远程重启服务器的,这时可以使用命令行方式远程重启.在cmd命令行状态下输入:shutdown -r -m \\192.168.1.10 -t 0 -f ...

  8. python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法

    python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法 在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数 ...

  9. (转)python strip()函数 去空格\n\r\t函数的用法

    原文:http://www.cnblogs.com/zdz8207/p/python_learn_note_20.html python3.4学习笔记(二十) python strip()函数 去空格 ...

随机推荐

  1. Windows环境下搭建Cocos2d-x3.2环境并配置android交叉编译环境

    一.软件 1)VS2012(C++11特性在VS2012以上可以使用):传送门: 2)Cocos2d-x官网源码:传送门:http://cocos2d-x.org/download 3)JDK:传送门 ...

  2. 爬虫需要登陆怎么办?这份python登陆代码请收下

    模拟登陆思路 通过selenium中的webdriver控制浏览器登录目标网站,然后获取模拟登陆需要的Cookie,再利用此Cookie来达到登录的效果.本次我们使用webdriver来驱动火狐浏览器 ...

  3. Mybatis源码详解系列(三)--从Mapper接口开始看Mybatis的执行逻辑

    简介 Mybatis 是一个持久层框架,它对 JDBC 进行了高级封装,使我们的代码中不会出现任何的 JDBC 代码,另外,它还通过 xml 或注解的方式将 sql 从 DAO/Repository ...

  4. python 进阶篇 迭代器和生成器深入理解

    列表/元组/字典/集合都是容器.对于容器,可以很直观地想象成多个元素在一起的单元:而不同容器的区别,正是在于内部数据结构的实现方法. 所有的容器都是可迭代的(iterable).另外字符串也可以被迭代 ...

  5. Java 自定义注解及注解读取解析--模拟框架生成SQL语句

    假设们使用一张简单的表,结构如下: 定义注解: 表注解: package com.xzlf.annotation; import java.lang.annotation.ElementType; i ...

  6. 二分查找(通过相对位置判断区间位置)--17--二分--LeetCode33搜索旋转排序数组

    搜索旋转排序数组 假设按照升序排序的数组在预先未知的某个点上进行了旋转.( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中 ...

  7. 高质量动漫实时画质增强器Anime4K在mpv上的配置

    Anime4K地址 https://github.com/bloc97/Anime4K mpv地址  https://mpv.io/   这个要错峰下载,网速不太好 在C盘用户\..\AppData\ ...

  8. php数组gbk和utf8的相互转化

    GBK转换成UFT-8用iconv()转化效率没有mb_convert_encoding()效率高eval() var_export() 把数组整体转化,如有一些特殊字符的话,可以用str_repla ...

  9. 预测球队比赛结果及利用pyinstaller打包文件

    一.预测乒乓球球队比赛成绩 1.乒乓球比赛规则 一局比赛:在一局比赛中,先得11分的一方为胜方:10平后,先多得2分的一方为胜方. 一场比赛:单打的淘汰赛采用七局四胜制,双打淘汰赛和团体赛采用五局三胜 ...

  10. 移动App性能测评与优化1.4.4 多进程应用

    1.4.4 多进程应用 根据上一节中的描述,当一个进程结束后,它所占用的共享库内存将会被其他仍然使用该共享库的进程所分担,共享库消耗的物理内存并不会减少.实际上,对于所有共享使用了这个库的应用,Pss ...