使用Python實(shí)現(xiàn)生命之輪Wheel of life效果
最近看一個(gè)生命之輪的視頻,讓我們珍惜時(shí)間,因?yàn)橐簧怯邢薜?。使用Python創(chuàng)建生命倒計(jì)時(shí)圖表,珍惜時(shí)間,活在當(dāng)下。
生命之輪(Wheel of life),這一概念最初由 Success Motivation® Institute, Inc. 的創(chuàng)始人 Paul J. Meyer 提出,生命之輪使人能夠根據(jù)此刻的價(jià)值觀、愿景和優(yōu)先事項(xiàng),規(guī)劃ta將為ta生活的每個(gè)領(lǐng)域付出的時(shí)間量。
要?jiǎng)?chuàng)造和使用生命之輪,應(yīng)該遵循以下步驟:
1、確定你人生的重點(diǎn)領(lǐng)域
2、使用你選擇的類別創(chuàng)建一個(gè)輪子
3、評(píng)價(jià)每個(gè)領(lǐng)域
4、連接這些打過(guò)分的點(diǎn)
5、將結(jié)果與你理想的狀況進(jìn)行比較
6、采取步驟解決你想要改進(jìn)的領(lǐng)域
創(chuàng)建生命倒計(jì)時(shí)代碼如下:
""" 導(dǎo)入必需的庫(kù): matplotlib.pyplot用于繪圖, numpy用于數(shù)值計(jì)算, datetime用于獲取當(dāng)前日期 """ import matplotlib.pyplot as plt import numpy as np from datetime import datetime # 出生年月日 birth_year = 1991 birth_month = 9 birth_day = 1 # 當(dāng)前年月日 current_date = datetime.now() current_year = current_date.year current_month = current_date.month # 設(shè)置圖表的總年數(shù)和每行的年數(shù) # 設(shè)置圖表的總年數(shù)為80年,每行顯示4年 total_years = 80 years_per_row = 4 # 計(jì)算總行數(shù)和總列數(shù) total_rows = total_years // years_per_row total_columns = years_per_row * 12 # 創(chuàng)建圖表 fig, ax = plt.subplots(figsize=(12, 8)) # 計(jì)算從出生到當(dāng)前日期已經(jīng)過(guò)去的月份數(shù) months_passed = (current_year - birth_year) * 12 + (current_month - birth_month) # 繪制所有月份 # for i in range(total_rows * total_columns): # color = 'red' if i < months_passed else 'black' # ax.scatter(i % total_columns, i // total_columns, marker='o', edgecolors=color, facecolors='none', s=30) # 繪制所有月份 # 如果該月份已經(jīng)過(guò)去,用紅色邊框和綠色填充來(lái)表示,否則用黑色邊框和空心來(lái)表示。 for i in range(total_rows * total_columns): if i < months_passed: ax.scatter(i % total_columns, i // total_columns, marker='o', edgecolors='red', facecolors='green', s=150) else: ax.scatter(i % total_columns, i // total_columns, marker='o', edgecolors='black', facecolors='none', s=150) # 添加每12列之后的分割線 """ 通過(guò)plt.axvline()函數(shù)在每12列之后添加一條分割線。 x=col - 0.5表示分割線的位置, color='gray'設(shè)置分割線的顏色為灰色, linestyle='--'設(shè)置分割線為虛線, linewidth=1設(shè)置分割線的寬度為1。 這樣可以在每行顯示的4年的12個(gè)月份之間添加分割線,使圖表更清晰。 """ for col in range(12, total_columns, 12): plt.axvline(x=col - 0.5, color='gray', linestyle='--', linewidth=1) # 設(shè)置軸標(biāo)簽 ax.set_xlabel('Months') ax.set_ylabel('Years') # 設(shè)置軸刻度 """ ax.set_xticks(np.arange(0, total_columns, 12)) ax.set_xticklabels(np.arange(1, years_per_row + 1)) """ """ ax.set_xticks(np.arange(0, total_columns + 1, 1))設(shè)置了X軸的刻度,使其每列都顯示刻度線, 而xtick_labels使用np.tile函數(shù)重復(fù)生成1到12的標(biāo)簽。 這樣可以在每個(gè)1到4的列中分別顯示1到12的刻度值。 """ ax.set_xticks(np.arange(0, total_columns, 1)) xtick_labels = np.tile(np.arange(1, 13), 4) # print(xtick_labels) ax.set_xticklabels(xtick_labels) # 設(shè)置Y軸刻度 ax.set_yticks(np.arange(0, total_rows, 1)) ax.set_yticklabels(np.arange(0, total_years, years_per_row)) # 設(shè)置標(biāo)題 ax.set_title('A 80-Year Human Life in Months') # 隱藏右邊和上邊的軸線 ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) # 顯示網(wǎng)格 # ax.grid(True) # 反轉(zhuǎn)y軸,使得0歲在頂部 plt.gca().invert_yaxis() # 顯示圖表 plt.tight_layout() plt.savefig("WhellOfLife.png") plt.show()
展示如下:
綠色的圓點(diǎn)表示以及一去不返的過(guò)去,空心圓圈表示剩余的時(shí)間,設(shè)置目標(biāo)年齡80歲,每行展示4年。每過(guò)一個(gè)月就涂掉一個(gè)圓圈。
到此這篇關(guān)于使用Python實(shí)現(xiàn)生命之輪Wheel of life效果的文章就介紹到這了,更多相關(guān)Python生命之輪內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python的set處理二維數(shù)組轉(zhuǎn)一維數(shù)組的方法示例
這篇文章主要介紹了python的set處理二維數(shù)組轉(zhuǎn)一維數(shù)組的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05Python實(shí)現(xiàn)多級(jí)目錄壓縮與解壓文件的方法
這篇文章主要介紹了Python實(shí)現(xiàn)多級(jí)目錄壓縮與解壓文件的方法,涉及Python針對(duì)文件路徑的遍歷、判斷以及文件壓縮、解壓縮等相關(guān)操作技巧,需要的朋友可以參考下2018-09-09Python pandas DataFrame操作的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python pandas DataFrame操作的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Python 高級(jí)教程之線程進(jìn)程和協(xié)程的代碼解析
這篇文章主要介紹了Python 高級(jí)教程之線程進(jìn)程和協(xié)程的代碼解析,包括使用線程模塊的簡(jiǎn)單示例,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05跟老齊學(xué)Python之for循環(huán)語(yǔ)句
看這個(gè)標(biāo)題,有點(diǎn)匪夷所思嗎?為什么for是難以想象的呢?因?yàn)樵趐ython中,它的確是很常用而且很強(qiáng)悍,強(qiáng)悍到以至于另外一個(gè)被稱之為迭代的東西,在python中就有點(diǎn)相形見(jiàn)絀了。在別的語(yǔ)言中,for的地位從來(lái)沒(méi)有如同python中這么高的。2014-10-10python基礎(chǔ)編程小實(shí)例之計(jì)算圓的面積
Python是最常用的編程語(yǔ)言,這種語(yǔ)言就是一種可以快速開(kāi)發(fā)應(yīng)用的解釋型語(yǔ)言,有些用戶不知道該怎么在Python編程里計(jì)算圓的面積,現(xiàn)在就給大家具體解釋一下,下面這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)編程小實(shí)例之計(jì)算圓的面積的相關(guān)資料,需要的朋友可以參考下2023-03-03python3+openCV 獲取圖片中文本區(qū)域的最小外接矩形實(shí)例
這篇文章主要介紹了python3+openCV 獲取圖片中文本區(qū)域的最小外接矩形實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python使用定時(shí)調(diào)度任務(wù)的方式
Python 有幾種方法可以定時(shí)調(diào)度一個(gè)任務(wù),這就是我們將在本文中學(xué)習(xí)的內(nèi)容。接下倆下邊將給大家介紹5種Python使用定時(shí)調(diào)度任務(wù)方式,需要的朋友可以參考下面文章內(nèi)容吧2021-09-09