Python 制作一張極具意義的人生進度圖
時間如流水,一路向前,轉眼間,2020年已接近尾聲。
這一年的你,過得還好嗎?
無論過去的這一年里,你是快樂還是難過,請不要沉溺于過去。
因為如果我們從宏觀的角度上來看待人生,按周計算,你會發(fā)現過去的這一年實際上也不過是微小的幾個點而已。
對于我而言,它是這樣的:

這些微小的點像鉆石一般組成了你的人生。每一個點都很重要,但未來的點更關鍵。
看著這張圖表,你有一個非常重要的問題需要回答:“我是否在充分利用自己的時間,我有沒有適當地享受人生”
事實上,我認為這張圖表上的每個點,即人生的每個星期,這樣過是最合適的:
1.享受生活
2.為未來的每個點能夠享受生活打下基礎
3.創(chuàng)造一些能讓自己或他人活得更有趣的東西
在理想狀態(tài)下,上面的三點應該是互相平衡的。(當然,理想狀態(tài)是不存在的)
如果你現在暫時無法平衡這三點,沒關系,制作這張圖,每個星期都來關注一下自己的人生進度。
神秘的原力會幫助你平衡這三點的(咋回事,我可是純正的理工科生)。
你可以把一些關鍵的人生時間節(jié)點標記在這張圖表上,比如我認為創(chuàng)建Python實用寶典是一件很有趣的事情:

這么看,Python實用寶典創(chuàng)建了才不到半年的時間就趕上了疫情啊,這一點我倒是沒注意到。
你也可以豐富一下這張圖表,把一些從小到大的重要節(jié)點寫上,并記錄今天所在的位置:

粗略地畫了一張我的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的路徑放入環(huán)境變量中:

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實戰(zhàn)教程,請持續(xù)關注Python實用寶典。
原創(chuàng)不易,希望你能在下面點個贊和在看支持我繼續(xù)創(chuàng)作,謝謝!
點擊下方閱讀原文可獲得更好的閱讀體驗
Python實用寶典?(pythondict.com)
不只是一個寶典
