MC, 2025
Ilustracja do artykułu: Gnuplot Plotting Real-Time Data from File: Siri ya Grafu Hai!

Gnuplot Plotting Real-Time Data from File: Siri ya Grafu Hai!

Katika ulimwengu wa kisasa wa teknolojia, kuwasilisha data kwa njia ya kuvutia na inayoeleweka ni jambo la msingi. Ikiwa unafanya kazi na data ya wakati halisi — iwe ni joto, kasi ya mitambo, au hata mawimbi ya sauti — Gnuplot ni zana bora ya kuchora michoro ya data hizo moja kwa moja kutoka faili. Katika makala hii ya furaha na matumaini, tutajifunza kwa kina kuhusu gnuplot plotting real-time data from file, na tutaangalia pia gnuplot plotting real-time data from file przykłady ili kufanikisha lengo hili kwa ufanisi!

Gnuplot ni nini na kwanini uitumie?

Gnuplot ni programu ya kuchora grafu inayopatikana bure na inaendeshwa kupitia terminal. Inasaidia aina mbalimbali za grafu kama mistari, alama, au hata 3D. Lakini kilicho cha kipekee ni uwezo wake wa kusoma data kutoka faili inayobadilika kwa wakati halisi na kuchora mabadiliko hayo papo hapo — jambo linalofaa sana kwa ufuatiliaji wa mchakato au utafiti wa kisayansi.

Mahitaji ya awali kabla ya kuanza

Kabla hatujaingia kwenye gnuplot plotting real-time data from file przykłady, hakikisha una yafuatayo:

  • Gnuplot imewekwa kwenye mfumo wako (Linux, Windows, au macOS)
  • Faili ya data inayoandikwa kwa wakati halisi (kama vile logi ya sensor)
  • Ufahamu wa msingi kuhusu amri za terminal au shell

Kuunda faili ya data ya wakati halisi

Kwa majaribio, tunaweza kutumia script rahisi ya Python kuandika data kwenye faili kwa vipindi vya sekunde chache:

import time
import random

while True:
    with open("data.txt", "a") as f:
        value = random.uniform(20.0, 30.0)
        f.write(f"{time.time()} {value}\n")
    time.sleep(1)

Script hii itaandika thamani ya bahati nasibu kila sekunde moja kwenye faili `data.txt`. Hii ndiyo data tutakayochora kwa kutumia Gnuplot.

Gnuplot: kuchora data hiyo moja kwa moja

Sasa hebu tuone jinsi ya kutumia Gnuplot kuchora data hiyo kwa wakati halisi:

gnuplot> set title "Sensor ya Joto Muda Halisi"
gnuplot> set xlabel "Wakati (sekunde)"
gnuplot> set ylabel "Joto (°C)"
gnuplot> plot "data.txt" using 1:2 with lines title "Joto" 

Kwa hali ya kawaida, hii itachora picha ya sasa tu. Lakini tunahitaji kuifanya iwe "hai" — yaani, ijiboreshe kila baada ya muda. Kwa hilo, tutatumia script ndogo ya Gnuplot kama ifuatavyo:

set title "Sensor ya Joto Muda Halisi"
set xlabel "Wakati (sekunde)"
set ylabel "Joto (°C)"
set autoscale
set datafile separator " "
plot "data.txt" using 1:2 with lines title "Joto"
pause 1
reread

Script hii itachora data, kisha kusubiri sekunde 1, kisha kuisoma tena kwa upya — na kurudia mchakato huo bila mwisho. Hii ndiyo njia ya msingi ya gnuplot plotting real-time data from file.

Vidokezo vya kuchora kwa ufanisi zaidi

Ili kufanya grafu yako iwe bora zaidi, zingatia haya:

  • Tumia `set xdata time` kama unatumia stempu za muda (timestamp)
  • Chuja data mpya tu kwa kutumia `tail -n` katika shell
  • Weka kikomo cha data unayochora kwa kutumia `every`

Kwa mfano, kama unataka kuchora mistari ya data ya mwisho tu (ya karibuni zaidi):

plot "< tail -n 100 data.txt" using 1:2 with lines

Hii inahakikisha grafu yako haijazwi na data nyingi kupita kiasi.

Maelezo ya kina ya faili ya data

Faili yako ya data inapaswa kuwa rahisi kusomeka, kwa mfano:

1682835932 24.5
1682835933 24.7
1682835934 24.4

Safu ya kwanza ni wakati (kwa sekunde tangu 1970), na safu ya pili ni thamani ya kipimo. Ikiwa unataka kutumia wakati wa kawaida (sio timestamp), unaweza kuandika kama:

12:00:01 24.5
12:00:02 24.7

Kisha utahitaji kufafanua Gnuplot kusoma saa hizo kama x-axis:

set xdata time
set timefmt "%H:%M:%S"
set format x "%H:%M:%S"

Maombi halisi ya matumizi

Je, ni wapi unaweza kutumia gnuplot plotting real-time data from file?

  • Ufuatiliaji wa joto la CPU au sensor za mazingira
  • Kuchora matumizi ya mtandao au RAM ya kompyuta
  • Kuchunguza mawimbi ya sauti au data ya kihandisi

Kwa mfano, unaweza kuunganisha Gnuplot na programu kama `sar` au `iotop` na kuchora taarifa ya utendaji wa mfumo wako bila kutumia zana nzito.

Kuboresha zaidi kwa script za shell

Unaweza pia kuunda script ya bash ambayo inaendesha Gnuplot moja kwa moja:

#!/bin/bash
gnuplot -persist <<-EOFMarker
    set title "Data ya Wakati Halisi"
    set xlabel "Muda"
    set ylabel "Kipimo"
    set autoscale
    plot "< tail -n 50 data.txt" using 1:2 with lines title "Kipimo"
    pause 1
    reread
EOFMarker

Script hii ni njia rahisi ya kuendesha Gnuplot kwa mtindo wa wakati halisi moja kwa moja bila kuandika amri moja baada ya nyingine.

Hitimisho: Grafu Zinaweza Kuwa Hai!

Kwa kutumia Gnuplot, unaweza kufanya data ionekane kwa njia ya kuvutia na hai — bila kutumia programu ghali au ngumu. Uwezo huu wa gnuplot plotting real-time data from file hukuwezesha kuwa na macho ya pili kwenye data zako. Na kwa kutumia gnuplot plotting real-time data from file przykłady kutoka makala hii, unaweza kuanza mara moja!

Kwa hivyo, usisubiri — tengeneza faili ya data, andika script, endesha Gnuplot, na uone data yako ikichanua kwenye skrini kama uchawi wa kisasa!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: