Command-Line

如何從標準輸入中繪製一系列數字的圖形圖?

  • January 5, 2022

如果有一個長文本文件並且我想顯示出現給定模式的所有行,我會這樣做:

grep -n form innsmouth.txt | cut -d : -f1

現在,我有一個數字序列(每行一個數字)

我想用 x 軸上的出現和 y 軸上的行號來製作 2D 圖形表示。我怎樣才能做到這一點?

在此處輸入圖像描述

你可以用gnuplot這個:

primes 1 100 |gnuplot -p -e 'plot "/dev/stdin"'

產生類似的東西

在此處輸入圖像描述

您可以根據自己的喜好配置圖形的外觀,以各種圖像格式輸出等。

我會在R. 您必須安裝它,但它應該在您的發行版儲存庫中可用。對於基於 Debian 的系統,執行

sudo apt-get install r-base

這也應該帶來,r-base-core但如果沒有,也應該執行sudo apt-get install r-base-core。安裝後,您R可以為此編寫一個簡單的 R 腳本:

#!/usr/bin/env Rscript
args <- commandArgs(TRUE)
## Read the input data
a<-read.table(args[1])
## Set the output file name/type
pdf(file="output.pdf")
## Plot your data
plot(a$V2,a$V1,ylab="line number",xlab="value")
## Close the graphics device (write to the output file)
dev.off()

上面的腳本將創建一個名為output.pdf. 我測試如下:

## Create a file with 100 random numbers and add line numbers (cat -n)
for i in {1..100}; do echo $RANDOM; done | cat -n > file 
## Run the R script
./foo.R file

在我使用的隨機數據上,產生:

在此處輸入圖像描述

我不完全確定您要繪製什麼,但這至少應該為您指明正確的方向。

引用自:https://unix.stackexchange.com/questions/190337