Python 制作一张极具意义的人生进度图
时间如流水,一路向前,转眼间,2020年已接近尾声。
这一年的你,过得还好吗?
无论过去的这一年里,你是快乐还是难过,请不要沉溺于过去。
因为如果我们从宏观的角度上来看待人生,按周计算,你会发现过去的这一年实际上也不过是微小的几个点而已。
对于我而言,它是这样的:
这些微小的点像钻石一般组成了你的人生。每一个点都很重要,但未来的点更关键。
看着这张图表,你有一个非常重要的问题需要回答:“我是否在充分利用自己的时间,我有没有适当地享受人生”
事实上,我认为这张图表上的每个点,即人生的每个星期,这样过是最合适的:
1.享受生活
2.为未来的每个点能够享受生活打下基础
3.创造一些能让自己或他人活得更有趣的东西
在理想状态下,上面的三点应该是互相平衡的。(当然,理想状态是不存在的)
如果你现在暂时无法平衡这三点,没关系,制作这张图,每个星期都来关注一下自己的人生进度。
神秘的原力会帮助你平衡这三点的(咋回事,我可是纯正的理工科生)。
你可以把一些关键的人生时间节点标记在这张图表上,比如我认为创建Python实用宝典是一件很有趣的事情:
这么看,Python实用宝典创建了才不到半年的时间就赶上了疫情啊,这一点我倒是没注意到。
你也可以丰富一下这张图表,把一些从小到大的重要节点写上,并记录今天所在的位置:
粗略地画了一张我的Life Graph,(当然没把细致的写出来哈,毕竟属于隐私),不过,我这个一会玩疯一会学疯也是挺有趣的。
接下来就教大家如何用Python最快、最方便地画出这张表,实际上我仅用了20行代码。
1.准备
开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda
事实上,如果我们从零开始画这个图表,是会比较麻烦的。
幸好,已经有Python同好—K20shore 大神的 Life-Graph项目帮我们做了这件事了。
https://github.com/K20shores/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)
不只是一个宝典