import matplotlib.pyplot as plt import numpy as np from datetime import datetime import time def aaa(): now = datetime.now() hour = now.hour minute = now.minute second = now.second # 设置图像大小和坐标系 fig, ax = plt.subplots(figsize=(5, 5)) ax.set_xlim(-1.1, 1.1) ax.set_ylim(-1.1, 1.1) # 绘制表盘 circle = plt.Circle((0, 0), 1.0, facecolor=None, edgecolor='black', linewidth=3.0) ax.add_artist(circle) # 绘制刻度线 for i in range(60): angle = i * (2 * np.pi / 60) if i % 5 == 0: start_pt = (0.9 * np.cos(angle), 0.9 * np.sin(angle)) end_pt = (np.cos(angle), np.sin(angle)) plt.plot([start_pt[0], end_pt[0]], [start_pt[1], end_pt[1]], 'black', linewidth=3.0) else: start_pt = (0.95 * np.cos(angle), 0.95 * np.sin(angle)) end_pt = (np.cos(angle), np.sin(angle)) plt.plot([start_pt[0], end_pt[0]], [start_pt[1], end_pt[1]], 'gray', linewidth=1.0) # 绘制秒针 angle_sec = (15 - second) * (2 * np.pi / 60) sec_x = 0.8 * np.cos(angle_sec) sec_y = 0.8 * np.sin(angle_sec) sec_hand = plt.Line2D([0, sec_x], [0, sec_y], color='red', linewidth=3.0) ax.add_artist(sec_hand) # 绘制分针 angle_min = (15 - minute) * (2 * np.pi / 60) min_x = 0.7 * np.cos(angle_min) min_y = 0.7 * np.sin(angle_min) min_hand = plt.Line2D([0, min_x], [0, min_y], color='blue', linewidth=5.0) ax.add_artist(min_hand) # 绘制时针 angle_hour = (15 - hour % 12 - minute / 60) * (2 * np.pi / 12) hour_x = 0.5 * np.cos(angle_hour) hour_y = 0.5 * np.sin(angle_hour) hour_hand = plt.Line2D([0, hour_x], [0, hour_y], color='green', linewidth=7.0) ax.add_artist(hour_hand) # 显示时钟 plt.axis('off') plt.show() while True: plt.pause(0.1) plt.close() aaa()
时间: 2024-03-19 16:42:38 浏览: 157
利用python numpy+matplotlib绘制股票k线图的方法
5星 · 资源好评率100%
这段代码实现了一个基于 Matplotlib 库的时钟程序。程序绘制了一个圆形表盘,并在上面绘制了秒针、分针和时针。每次程序运行时,都会根据当前时间更新指针的位置,并绘制出对应的时钟。
代码中的 `aaa()` 函数定义了绘制时钟的过程,该函数会在程序运行时不断被调用,以实现实时更新时钟的功能。具体来说,该函数会先获取当前的小时、分钟和秒钟信息,然后根据这些信息计算出每个指针的位置,最后使用 Matplotlib 库中的 `Line2D` 方法绘制出指针。
在代码的最后,使用 `while True` 循环和 `plt.pause()` 方法实现了实时更新时钟的功能。具体来说,程序会在每次绘制完成后暂停 0.1 秒,然后清除画布并重新绘制时钟,以实现实时更新的效果。
需要注意的是,由于 Matplotlib 库的特性,该程序可能会在某些环境下出现无法正常关闭的情况。如果遇到这种情况,可以尝试在终端中按下 `Ctrl+C` 组合键来强制关闭程序。
阅读全文