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

2024-12-31 15:50

本文主要是介绍使用Python实现生命之轮Wheel of life效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《使用Python实现生命之轮Wheeloflife效果》生命之轮Wheeloflife这一概念最初由SuccessMotivation®Institute,Inc.的创始人PaulJ.Meyer...

最近看一个生命之轮的视频,让我们珍惜时间,因为一生是有限的。使用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))

# 计算从出生到当前日期已经过去的js月份数
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='jso', 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=python'--', 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_xticklabelyZPAZKQQs(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.swww.chinasem.cnpines['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()

展示如下:

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

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

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

这篇关于使用Python实现生命之轮Wheel of life效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1152873

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑