python 下有什么 tui 可以画折线图?

python 下有什么 tui 可以画折线图?

这是一个 nvtop 的程序画出来的折线图

可以反应显卡的利用率和内存占用率的时序变化

我想用 python 写一个的话,有什么 tui 可以让我方便的实现呢?

这个 nvtop 是 c 写的,我不懂 c

我看到 python 下有两个出名的 tui 包

  • textual
  • pytermgui

但是其中都没有画折线图的 demo 代码样例

谁能帮帮我?


回答:

使用matplotlib, 具体的使用方法可以参考下面:
https://www.cnblogs.com/hgrun...
https://blog.csdn.net/qq54281...


回答:

  1. ASCIIGraph:可以轻松地将数据转换为文本表格或折线图
from asciigraph import AsciiGraph

graph = AsciiGraph()

data = [10, 12, 13, 14, 12, 10]

print(graph.plot(data))

  1. termplotlib:在终端中绘制折线图的Python库,它使用Matplotlib进行绘图
from termplotlib import plot

data = [10, 12, 13, 14, 12, 10]

plot(data)

  1. console-line-chart:可以绘制简单的折线图
from console_line_chart import ConsoleLineChart

data = [10, 12, 13, 14, 12, 10]

chart = ConsoleLineChart()

chart.plot(data)


回答:

  • 标准库 curses
  • 第三方库 blessed

glances、nvitop 用的是 curses,curses 是标准库里面的

使用 curses 实现一个按照内存使用率升序排序的 『简易htop』

python">import curses

import psutil

def draw_header(stdscr):

stdscr.addstr(0, 2, "PID")

stdscr.addstr(0, 10, "Name")

stdscr.addstr(0, 40, "CPU (%)")

stdscr.addstr(0, 50, "Memory (%)")

def draw_processes(stdscr, processes):

max_y, max_x = stdscr.getmaxyx()

for i, process in enumerate(processes, start=1):

if i >= max_y:

break

stdscr.addstr(i, 2, str(process.info['pid']))

stdscr.addstr(i, 10, process.info['name'])

stdscr.addstr(i, 40, f"{process.info['cpu_percent']:.1f}")

stdscr.addstr(i, 50, f"{process.info['memory_percent']:.1f}")

def main(stdscr):

curses.curs_set(0)

stdscr.clear()

stdscr.refresh()

# 获取进程信息

processes = list(psutil.process_iter(attrs=['pid', 'name', 'cpu_percent', 'memory_percent']))

processes = sorted(processes, key=lambda p: p.info['memory_percent'], reverse=True)

while True:

stdscr.clear()

draw_header(stdscr)

draw_processes(stdscr, processes)

stdscr.refresh()

stdscr.getch()

curses.wrapper(main)

python 下有什么 tui 可以画折线图?

以上是 python 下有什么 tui 可以画折线图? 的全部内容, 来源链接: utcz.com/p/938752.html

回到顶部