把时间线拉回到 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世界那么大_世界这么大,Python 也想去看看相关推荐

  1. 世界这么大,我想去看看!!!

    最近一直循环播放一首歌,一个叫做校长唱的<带你去旅行>,喜欢的一塌糊涂...... 也许,是因为自己内心有一颗热爱旅游的心,听到里边的歌词就有一种共鸣, 希望有一场说走就走的旅行,我不像歌 ...

  2. 鹅厂程序员:世界这么大,我想去看看。鹅厂那么好,我想再回来

    有个认识蛮久的腾讯同学,称L同学,认识一年多了吧,985学校本科,做后端开发的,校招腾讯也有4年+了,9级. 其实19年那会,L同学自己先面了一两家了,后来我给他推荐了几家公司,深圳&上海的, ...

  3. 世界这么大,你该去看看

    世界这么大,你该去看看 我常好为人师,告诉已工作一两年的同事,"做软件这行业,有好机会就出去看看外面的世界.在一个地方呆得太久,会局限自己的眼界." 这不是怂恿人去跳槽,心浮气躁地 ...

  4. python世界那么大_有一种冲动:世界那么大

    "世界那么大,我想去看看" 类似这样的冲动,谁没有过呢? 1 在我职业生涯中的前三次离职,不能说都是这样的冲动引发的,但肯定其中有它的因素.前三次离职,都不是因为有了更好的工作诱惑 ...

  5. pythoncookbook和流畅的python对比_为什么你学Python效率比别人慢?因为你没有这套完整的学习资料...

    以下资源免费获取方式! 关注!转发!私信"资料"即可免费领取! 入门书籍 1.<Python基础教程>(Beginning Python From Novice to ...

  6. 零基础学python 视频_全网最全Python视频教程真正零基础学习Python视频教程 490集...

    Python Web开发-进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程 [课程简介] 这是一门Python Web开发进阶课程,手把手教你用Python开发完整的商业 ...

  7. 3 x 10的python表达式_这道数学题用PYTHON编程语言怎么写? 编程语言python是用

    我觉着,这个应该这样解决比较符合计算机解题思路. 下面的回答的,思考的东西太多. # -*- coding: utf-8 -*- __author__ = 'lpe234' __date__ = '2 ...

  8. 虫术 python绝技_虫术:Python绝技

    第1章 爬虫初步 1.1 爬虫与大数据 1.1.1 大数据架构 1.1.2 爬虫的作用与地位 1.1.3 Python与爬虫 1.1.4 Python的网络爬虫框架 1.1.5 虫术技术路线图 1.2 ...

  9. 为什么要学python语言_我们为什么要学习Python语言?

    原标题:我们为什么要学习Python语言? 聊到我们为什么要学习Python语言?小编不禁又想起大佬潘石屹准备开启Python学习旅程时所发布的微博. 我们为什么要学习Python语言? 在农业社会时 ...

最新文章

  1. 阿里JAVA开发手册零度的思考理解(二)
  2. php实现tail,Linux-如何用php实现Linux下的tail -f命令?
  3. SpringSecurity快速入门
  4. Activity管理
  5. Hive学习和配置Mysql
  6. 【Linux】一步一步学Linux——arpwatch命令(165)
  7. sql和sqlite常用查询语句
  8. 程序员的二十句励志名言,看看你最喜欢哪句?
  9. struts2 Eclipse 中集成strust2开发框架实例
  10. php mysql 字段自增_MySQL自增字段取值的详细介绍(附代码)
  11. tcp的粘包和拆包示例以及使用LengthFieldFrameDecoder来解决的方法
  12. 小型计算器的实现——Java GUI图形界面设计案例
  13. PySide6官方教程 循序渐进学好Qt for Python
  14. HZOI20190819模拟26题解
  15. dubbo中文官网地址
  16. 10_OpenCV读取原始raw(raw10和raw8),转换成rgb和灰度图,并显示
  17. 机械式计算机自制,自制计算机(1):机械计算机原理
  18. 这世界无非是“人人为我,我为人人”
  19. 最新版的快递单号生成查询工具 测试版
  20. 使用个人股票量化接口做股票投资靠谱吗?

热门文章

  1. wordpress最佳架构_25个最佳免费WordPress商业主题
  2. 零基础也能学会的微信小程序制作横向滚动布局
  3. Juniper入门之简单命令
  4. 重读中本聪邮件系列——匿名篇
  5. Windows2008R2蓝牙安装(IVT BlueSoleil 安装指南)
  6. windows获取网卡信息并判断是否是物理网卡 网络适配器的判断
  7. 漫画 | 三千年的密码战争,人类天才的巅峰对决
  8. Material Design in Action — 哔哩哔哩动画 Android 客户端
  9. 已知某一天的日出时间和日落时间,分别保存在两个字符串中,求这个白天一共有几小时几分
  10. c++游戏之双人作战