Jika memiliki file teks panjang dan saya ingin menampilkan semua baris di mana pola yang diberikan terjadi, saya lakukan:
grep -n form innsmouth.txt | cut -d : -f1
Sekarang, saya memiliki urutan angka (satu angka per baris)
Saya ingin membuat representasi grafis 2D dengan kemunculan pada sumbu x dan nomor baris pada sumbu y. Bagaimana saya bisa mencapai ini?
command-line
graphics
Abdul Al Hazred
sumber
sumber
Jawaban:
Anda bisa menggunakan
gnuplot
ini:menghasilkan sesuatu seperti
Anda dapat mengonfigurasi tampilan grafik untuk kesenangan hati Anda, menghasilkan berbagai format gambar, dll.
sumber
gnuplot
ataugnuplot-x11
? jika yang pertama, afaik itu hanya menyediakan output file (yaitu menghasilkan file pdf, png dll ) daripada plot interaktif langsung ke layar.seq 100 >seq.dat
, kemudian jalankan secaragnuplot
interaktif dan pada tipe promptplot "seq.dat"
?Failed to initialize wxWidgets.
dengan gnuplot-x11 ... Apakah saya perlu memiliki satu atau yang lain? atau dapat keduanyagnuplot
dangnuplot-x11
diinstal?notitle
plot tanpa judul.Saya akan melakukan ini
R
. Anda harus menginstalnya tetapi harus tersedia di repositori distribusi Anda. Untuk sistem berbasis Debian, jalankanItu juga harus membawa
r-base-core
tetapi jika tidak, jalankansudo apt-get install r-base-core
juga. SetelahR
menginstal, Anda dapat menulis skrip R sederhana untuk ini:Script di atas akan membuat file bernama
output.pdf
. Saya diuji sebagai berikut:Pada data acak yang saya gunakan, yang menghasilkan:
Saya tidak sepenuhnya yakin apa yang ingin Anda plot tetapi setidaknya harus mengarahkan Anda ke arah yang benar.
sumber
#!/usr/bin/env Rscript; args <- commandArgs(TRUE); a<-read.table(args[1]); plot(a$V2,a$V1,ylab="line number",xlab="value");
untuk menghasilkan Rplots.pdf di direktori yang sama.Jika cetakan terminal yang sangat sederhana sudah mencukupi, dan Anda bisa puas dengan sumbu terbalik, pertimbangkan hal berikut:
Grafik di atas tren terbalik pada skala 10% untuk setiap kemunculan pola 11 dalam output
seq 1000
.Seperti ini:
Dengan jumlah titik dan kemunculannya bisa:
... yang mencetak ...
Anda bisa mendapatkan sumbu seperti contoh Anda dengan lebih banyak pekerjaan dan
tput
- Anda harus melakukan\033[A
pelarian (atau yang setara dengan kompatibel dengan emulator terminal Anda) untuk memindahkan kursor ke atas garis untuk setiap kejadian.Jika
awk
'sprintf
dukungan ruang-bantalan seperti POSIX-shellprintf
tidak, maka Anda dapat menggunakannya untuk melakukan hal yang sama - dan mungkin jauh lebih efisien juga. Namun saya tidak tahu bagaimana cara menggunakannyaawk
.sumber
Meningkatkan jawaban Nate untuk mendapatkan hasil PDF dan untuk memplot baris (membutuhkan
rsvg-convert
):sumber
Atau Anda dapat mengarahkan ulang data stdout melalui pipa ke skrip python khusus. Ini akan memungkinkan Anda banyak penyesuaian dan fleksibilitas dalam penguraian, pra-pemrosesan dan memvisualisasikan data.
Berikut ini adalah tutorial tentang ini saya menulis untuk melakukan persis seperti yang Anda inginkan. link
sumber