使用Python实现生命之轮Wheel of life效果

 更新时间:2024年12月31日 08:41:54   作者:Ritchie.Lee  
生命之轮Wheel of life这一概念最初由 Success Motivation® Institute, Inc. 的创始人 Paul J. Meyer 提出,生命之轮使人能够根据此刻的价值观、愿景和优先事项,本文将使用Python实现生命倒计时图表,感兴趣的可以了解下

最近看一个生命之轮的视频,让我们珍惜时间,因为一生是有限的。使用Python创建生命倒计时图表,珍惜时间,活在当下。

生命之轮(Wheel of life),这一概念最初由 Success Motivation® Institute, Inc. 的创始人 Paul J. Meyer 提出,生命之轮使人能够根据此刻的价值观、愿景和优先事项,规划ta将为ta生活的每个领域付出的时间量。

要创造和使用生命之轮,应该遵循以下步骤:

1、确定你人生的重点领域

2、使用你选择的类别创建一个轮子

3、评价每个领域

4、连接这些打过分的点

5、将结果与你理想的状况进行比较

6、采取步骤解决你想要改进的领域

创建生命倒计时代码如下:

"""
导入必需的库:
matplotlib.pyplot用于绘图,
numpy用于数值计算,
datetime用于获取当前日期

"""
import matplotlib.pyplot as plt
import numpy as np
from datetime import datetime

# 出生年月日
birth_year = 1991
birth_month = 9
birth_day = 1

# 当前年月日
current_date = datetime.now()
current_year = current_date.year
current_month = current_date.month

# 设置图表的总年数和每行的年数
# 设置图表的总年数为80年,每行显示4年
total_years = 80
years_per_row = 4

# 计算总行数和总列数
total_rows = total_years // years_per_row
total_columns = years_per_row * 12

# 创建图表
fig, ax = plt.subplots(figsize=(12, 8))

# 计算从出生到当前日期已经过去的月份数
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)


# 绘制所有月份
# 如果该月份已经过去,用红色边框和绿色填充来表示,否则用黑色边框和空心来表示。
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列之后的分割线
"""
通过plt.axvline()函数在每12列之后添加一条分割线。
x=col - 0.5表示分割线的位置,
color='gray'设置分割线的颜色为灰色,
linestyle='--'设置分割线为虚线,
linewidth=1设置分割线的宽度为1。
这样可以在每行显示的4年的12个月份之间添加分割线,使图表更清晰。
"""
for col in range(12, total_columns, 12):
    plt.axvline(x=col - 0.5, color='gray', linestyle='--', linewidth=1)

# 设置轴标签
ax.set_xlabel('Months')
ax.set_ylabel('Years')

# 设置轴刻度
"""

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))设置了X轴的刻度,使其每列都显示刻度线,
而xtick_labels使用np.tile函数重复生成1到12的标签。
这样可以在每个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)



# 设置Y轴刻度
ax.set_yticks(np.arange(0, total_rows, 1))
ax.set_yticklabels(np.arange(0, total_years, years_per_row))

# 设置标题
ax.set_title('A 80-Year Human Life in Months')

# 隐藏右边和上边的轴线
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)

# 显示网格
# ax.grid(True)

# 反转y轴,使得0岁在顶部
plt.gca().invert_yaxis()

# 显示图表
plt.tight_layout()
plt.savefig("WhellOfLife.png")
plt.show()

展示如下:

绿色的圆点表示以及一去不返的过去,空心圆圈表示剩余的时间,设置目标年龄80岁,每行展示4年。每过一个月就涂掉一个圆圈。

到此这篇关于使用Python实现生命之轮Wheel of life效果的文章就介绍到这了,更多相关Python生命之轮内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何利用python实现Simhash算法

    如何利用python实现Simhash算法

    这篇文章主要介绍了如何利用python实现Simhash算法,文章基于python的相关资料展开Simhash算法的详细介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-06-06
  • Python工厂函数用法实例分析

    Python工厂函数用法实例分析

    这篇文章主要介绍了Python工厂函数用法,结合实例形式分析了Python工厂函数的概念、功能、使用方法及相关注意事项,需要的朋友可以参考下
    2018-05-05
  • python 查找字符串是否存在实例详解

    python 查找字符串是否存在实例详解

    这篇文章主要介绍了python 查找字符串是否存在实例详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • Python with关键字,上下文管理器,@contextmanager文件操作示例

    Python with关键字,上下文管理器,@contextmanager文件操作示例

    这篇文章主要介绍了Python with关键字,上下文管理器,@contextmanager文件操作,结合实例形式分析了Python使用with关键字及上下文管理器、contextmanager进行文件打开、读写、关闭等操作的相关实现技巧,需要的朋友可以参考下
    2019-10-10
  • 解决jupyter运行pyqt代码内核重启的问题

    解决jupyter运行pyqt代码内核重启的问题

    这篇文章主要介绍了解决jupyter运行pyqt代码内核重启的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 解决django migrate报错ORA-02000: missing ALWAYS keyword

    解决django migrate报错ORA-02000: missing ALWAYS keyword

    这篇文章主要介绍了解决django migrate报错ORA-02000: missing ALWAYS keyword,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python3变量与基本数据类型用法实例分析

    Python3变量与基本数据类型用法实例分析

    这篇文章主要介绍了Python3变量与基本数据类型用法,结合实例形式分析了Python3保留字、标识符、变量、基本数据类型及相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • 使用python实现数组、链表、队列、栈的方法

    使用python实现数组、链表、队列、栈的方法

    数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。这篇文章主要介绍了使用python实现数组、链表、队列、栈的相关知识,需要的朋友可以参考下
    2019-12-12
  • python中如何实现将数据分成训练集与测试集的方法

    python中如何实现将数据分成训练集与测试集的方法

    这篇文章主要介绍了python中如何实现将数据分成训练集与测试集的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Pygame Display显示模块的使用方法

    Pygame Display显示模块的使用方法

    本文主要介绍了Pygame Display显示模块的使用方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11

最新评论