Termgraph如何在Linux终端上绘制基本图形

时间:2020-02-23 14:31:28  来源:igfitidea点击:

在本教程中,我们将学习如何使用名为Termgraph的基于python的工具在Linux终端上绘制基本图形。 Termgraph可用于在终端上绘制许多图形,例如;条形图,颜色图表,多变量,堆叠图表,水平或者垂直和表情符号。

在Linux上安装Termgraph

以下是安装和使用Termgraph在终端上绘制基本图形的步骤。

安装Python3

Termgraph需要在本地系统上安装python3. 对于Arch Linux用户,python3是操作系统随附的默认版本。

在CentOS上安装Python3

如果运行的是CentOS 7/6或者任何其他RHEL派生产品,则EPEL存储库中提供了python3.

添加EPEL存储库,然后使用以下命令安装Python3:

sudo yum install -y epel-release
sudo yum install -y python36-setuptools git

在Ubuntu上安装Python 3

Ubuntu 18.04和其他最新版本随附Python3.x。

$python3 -V
Python 3.6.7

对于较旧的Ubuntu系统,jonathonfPPA上提供了Python3,请使用以下命令将其添加:

sudo add-apt-repository ppa:jonathonf/python-3.6

然后安装python3.

sudo apt-get update
sudo apt-get install -y git python3.6

安装colorama Python模块

要安装colorama,我们需要安装pip3. 如果尚未安装,请运行以下命令进行安装;

在RHEL衍生产品上:

sudo easy_install-3.6 pip

关于Debian衍生产品:

sudo apt-get install -y python3-pip

一旦安装了pip3,请使用以下命令安装colorama:

sudo pip3 install colorama

在Linux上安装Termgraph

要使用适用于Python的pip3软件包管理器安装termgraph,请执行以下操作:

$sudo pip3 install termgraph
Collecting termgraph
  Downloading https://files.pythonhosted.org/packages/6e/45/955060f2957c31d448b926519ebedf12ff0f516b3f22312655f2b52b3894/termgraph-0.2.0-py3-none-any.whl
Requirement already satisfied: colorama in /usr/lib/python3/dist-packages (from termgraph)
Installing collected packages: termgraph
Successfully installed termgraph-0.2.0

现在我们可以使用术语图绘制图形了。

$which termgraph
/usr/local/bin/termgraph

检查帮助页面以了解术语图的基本用法:

$termgraph --help
usage: termgraph [-h] [--title TITLE] [--width WIDTH] [--format FORMAT]
                 [--suffix SUFFIX] [--no-labels]
                 [--color [{red,blue,green,magenta,yellow,black,cyan} [{red,blue,green,magenta,yellow,black,cyan} ...]]]
                 [--vertical] [--stacked] [--different-scale] [--calendar]
                 [--start-dt START_DT] [--custom-tick CUSTOM_TICK]
                 [--delim DELIM] [--verbose] [--version]
                 [filename]

draw basic graphs on terminal

positional arguments:
  filename              data file name (comma or space separated). Defaults to
                        stdin.

optional arguments:
  -h, --help            show this help message and exit
  --title TITLE         Title of graph
  --width WIDTH         width of graph in characters default:50
  --format FORMAT       format specifier to use.
  --suffix SUFFIX       string to add as a suffix to all data points.
  --no-labels           Do not print the label column
  --color [{red,blue,green,magenta,yellow,black,cyan} [{red,blue,green,magenta,yellow,black,cyan} ...]]
                        Graph bar color( s )
  --vertical            Vertical graph
  --stacked             Stacked bar graph
  --different-scale     Categories have different scales.
  --calendar            Calendar Heatmap chart
  --start-dt START_DT   Start date for Calendar chart
  --custom-tick CUSTOM_TICK
                        Custom tick mark, emoji approved
  --delim DELIM         Custom delimiter, default , or space
  --verbose             Verbose output, helpful for debugging
  --version             Display version and exit

Termgraph的用法示例

用两列逗号或者空格分隔的数据文件。第一列是标签,第二列是数字数据

$mkdir termgraph-data
$cd termgraph-data

创建测试数据文件:

$cat dset1.dat
2016 200.45
2016 110.45
2015 77.89
2014 66.2
2014 760.00
2013 450.56

然后在终端上生成图表:

2016: ▇▇▇▇▇▇▇▇▇ 200.45
2016: ▇▇▇ 110.45
2015: ▏ 77.89
2014: ▏ 66.20
2014: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 760.00
2013: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 450.56

这将从文件dset1.dat中读取数据。

我们还可以使用颜色,如下所示:

$cat test2.dat
# Example Data Set with 2 Categories
@ Oranges,Pineapples
2016,200.45,70.5
2016,110.45,300.46
2015,77.89,120.45
2014,66.2,345.22
2014,760.00,30.24
2013,450.56,472

然后:

$ termgraph test2.dat --color {red,green}

处理没有类别的堆叠数据:

$cat test3.dat 
# Example Data Set without Categories' names
2016,200.45,70.5
2016,110.45,300.46
2015,77.89,120.45
2014,66.2,345.22
2014,760.00,30.24
2013,450.56,472

然后运行:

$termgraph test3.dat --color {magenta,green} --stacked --title "Stacked Data"

使用日历热图

这期望第一列是格式为" YYYY-mm-dd"的日期。

$cat cal.dat
2016-01-10 100.34
2016-02-11 50.00
2016-03-12 66.45
2016-04-13 10.11
2016-05-14 0.00
2016-06-15 30
2016-07-16 24.56
2016-01-10 6.55
2016-02-11 6.88
2016-03-12 10.34
2016-04-13 40.45
2016-05-14 66.78
2016-06-15 55.45
2016-07-16 5.67

使用标准输入和表情符号

在stdin上提供表情符号的示例:

echo "Label,5,10,20,15,35,10,45,3,7,28" | termgraph --custom-tick "?" --no-label