用Python实战制作一张极具意义的人生进度图

时间如流水,一路向前,转眼间,2020年已过半。

这半年的你,过得还好吗?

无论过去的半年里,你是快乐还是难过,请不要沉溺于过去。

因为如果我们从宏观的角度上来看待人生,按周计算,你会发现过去的半年实际上也不过是微小的几个点而已。

对于我而言,它是这样的:

这些微小的点像钻石一般组成了你的人生。每一个点都很重要,但未来的点更关键。

看着这张图表,你有一个非常重要的问题需要回答:“我是否在充分利用自己的时间,我有没有适当地享受人生”

事实上,我认为这张图表上的每个点,即人生的每个星期,这样过是最合适的:

1.享受生活

2.为未来的每个点能够享受生活打下基础

3.创造一些能让自己或他人活得更有趣的东西

在理想状态下,上面的三点应该是互相平衡的。(当然,理想状态是不存在的)

如果你现在暂时无法平衡这三点,没关系,制作这张图,每个星期都来关注一下自己的人生进度。

神秘的原力会帮助你平衡这三点的(咋回事,我可是纯正的理工科生。

你可以把一些关键的人生时间节点标记在这张图表上,比如我认为创建Python实用宝典是一件很有趣的事情:

这么看,Python实用宝典创建了才不到半年的时间就赶上了疫情啊,这一点我倒是没注意到。

当然,你也可以丰富一下这张图表,把一些从小到大的重要节点写上,并记录今天所在的位置:

粗略地画了一张我的Life Graph,(当然没把细致的写出来哈,毕竟属于隐私),不过,我这个一会玩疯一会学疯也是挺有趣的。

接下来就教大家如何用Python最快、最方便地画出这张表,实际上我仅用了20行代码。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda

事实上,如果我们从零开始画这个图表,是会比较麻烦的。

幸好,已经有Python同好—K20shore 大神的 Life-Graph项目帮我们做了这件事了。

你可以直接在GitHub上下载他的源代码,也可以关注Python实用宝典公众号,回复 “人生” 下载。

这份源代码依赖于Latex,所以你还需要下载 MiKTeX,一路按默认安装即可:
https://miktex.org/download

安装的时候请记住路径,因为安装完成后还需要将latex.exe的路径放入环境变量中:

2.基本使用

K20shores大神的这个库基本包含了我们所有需要使用的元件。

比如前面提到的标记某一个时间段,可以用add_era:

# 增加事件名称及其时间段
g.add_era('COVID-19', date(2020, 1, 1), date(2020, 7, 1), color="#605041")

示例如下:

from lifegraph.lifegraph import Lifegraph, Papersize, Side
from datetime import date

# 以出生日期为起点
birthday = date(1997, 6, 28)
g = Lifegraph(birthday, dpi=300, size=Papersize.A4, max_age=100)

g.add_title("Life Graph")
g.show_max_age_label()

# 增加事件名称及其时间段
g.add_era('COVID-19', date(2020, 1, 1), date(2020, 7, 1), color="#605041")

g.save("grid.png")

部分截图:

如果你需要标记一个点,可以使用add_life_event函数:

# 标记一个生命事件,可配置文本颜色及显示位置
g.add_life_event('Pythondict\nCreated', date(2019, 7, 31), color="#dc143c", side=Side.LEFT)

参数color可以配置相关线条及文本颜色,side可以配置文本显示在左边还是右边。

示例如下:

from lifegraph.lifegraph import Lifegraph, Papersize, Side
from datetime import date

# 以出生日期为起点
birthday = date(1997, 6, 28)
g = Lifegraph(birthday, dpi=300, size=Papersize.A4, max_age=100)

g.add_title("Life Graph")
g.show_max_age_label()

# 增加事件名称及其时间段
g.add_era('COVID-19', date(2020, 1, 1), date(2020, 7, 1), color="#605041")
g.add_life_event('Pythondict\nCreated', date(2019, 7, 31), color="#dc143c", side=Side.LEFT)

g.save("grid.png")

部分截图:

事实上,只要你会了这两个操作,基本上就没问题了。

值得注意的是,如果你需要用中文,请搜索“Latex 使用中文”相关的配置教程。

3.高级使用

其实它还可以配置背景图,这是我没想到的:

from lifegraph.lifegraph import Lifegraph, Papersize, Side
from datetime import date

# 以出生日期为起点
birthday = date(1997, 6, 28)
g = Lifegraph(birthday, dpi=300, size=Papersize.A4, max_age=100)

g.add_title("Life Graph")
g.show_max_age_label()

# 增加事件名称及其时间段
g.add_era('COVID-19', date(2020, 1, 1), date(2020, 7, 1), color="#605041")
g.add_life_event('Pythondict\nCreated', date(2019, 7, 31), color="#dc143c", side=Side.LEFT)

# 设置背景图
g.add_image("unnamed.jpg", alpha=0.5)

g.save("grid.png")

效果如下:

此外,连接多个点也是可以的:

from lifegraph.lifegraph import Lifegraph, Papersize, Side
from datetime import date

# 以出生日期为起点
birthday = date(1997, 6, 28)
g = Lifegraph(birthday, dpi=300, size=Papersize.A4, max_age=100)

g.add_title("Life Graph")
g.show_max_age_label()

# 增加事件名称及其时间段
g.add_era('COVID-19', date(2020, 1, 1), date(2020, 7, 1), color="#605041")

# 连接 A B 两个日期
g.add_era_span(
    'From A to B',
    date(2016, 12, 31), date(2020, 7, 13),
    color="#4423fe",
    side=Side.LEFT
)

g.save("grid.png")

基本上全部的使用方法就这些了。

希望大家能用这个工具,时刻提醒自己:

快乐地度过每一个星期,做一些有意义的事情,不负韵华。

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。

原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!


​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注