插件窝 干货文章 Python终端下如何绘制类似nvtop的折线图?

Python终端下如何绘制类似nvtop的折线图?

线图 终端 绘制 实时更新 609    来源:    2025-03-15

在Python终端下绘制类似nvtop的折线图,可以使用一些终端绘图库。nvtop是一个用于监控GPU使用情况的工具,它会在终端中显示实时的折线图。要在Python中实现类似的效果,可以使用blessedurwidasciimatics等库来创建终端用户界面,并结合matplotlibplotext等库来绘制折线图。

以下是一个使用plotext库在终端中绘制折线图的简单示例:

1. 安装plotext

首先,你需要安装plotext库。你可以使用pip来安装:

pip install plotext

2. 编写Python代码

接下来,编写一个简单的Python脚本来绘制折线图:

import plotext as plt
import time
import random

# 初始化数据
x = list(range(10))
y = [random.randint(0, 100) for _ in range(10)]

# 设置标题和标签
plt.title("GPU Usage Over Time")
plt.xlabel("Time (s)")
plt.ylabel("Usage (%)")

# 绘制折线图
plt.plot(x, y)

# 显示图表
plt.show()

# 模拟实时更新
while True:
    time.sleep(1)  # 等待1秒
    y.pop(0)  # 移除第一个数据点
    y.append(random.randint(0, 100))  # 添加新的随机数据点
    plt.clear_data()  # 清除旧数据
    plt.plot(x, y)  # 绘制新数据
    plt.show()  # 显示更新后的图表

3. 运行代码

运行上述代码后,你将在终端中看到一个实时更新的折线图,类似于nvtop的效果。

4. 解释代码

  • plotext库用于在终端中绘制图表。
  • xy分别是X轴和Y轴的数据。
  • plt.plot(x, y)用于绘制折线图。
  • plt.show()用于显示图表。
  • while循环用于模拟实时更新数据,每隔1秒更新一次数据并重新绘制图表。

5. 其他选择

如果你需要更复杂的终端用户界面,可以考虑使用urwidasciimatics等库。这些库提供了更多的控件和布局选项,适合构建更复杂的终端应用。

6. 注意事项

  • 终端绘图的效果受限于终端的显示能力,可能无法像图形界面那样精细。
  • 实时更新的频率和数据的复杂性可能会影响性能。

通过这种方式,你可以在Python终端中实现类似nvtop的折线图效果。