Kirjoittaja Aihe: [ osittain ratkaistu ] Suorakaiteen muotoinen liukuvärjätty alue gnuplotilla  (Luettu 3270 kertaa)

teele

  • Käyttäjä
  • Viestejä: 852
    • Profiili
Joskus olisi hauska saada jotain kuviakin, niin kokeilin gnplotia, joka on valmiina vakio Ubuntu 20.04 -koneessa.

Tarkoitus olisi saada suorakaiteen muotoinen liukuvärinen "heat map", kun havaintopisteet ovat valmiina m * n matriisissa ja samalle kuva-alueelle olisi kätevä saada vaikka pari vähän eri muotoista liukuvärjättyä suorakaidetta.

Netissä on paljon ohjeita, mutta mikään ei ihan heti näytä sopivan tilanteeseen, esimerkiksi

https://stackoverflow.com/questions/21663358/gnuplot-heatmap-xyz
https://gnuplot.sourceforge.net/demo/heatmap_points.html
https://web.physics.utah.edu/~detar/phys6720/resources/Gnuplot_tutorial.html

Voisi kuvitella, että liukuvärjätyt suorakaiteet ovat ihan perusjuttuja gnuplotilla, ehkä etsinnässä on jotain pielessä, kun sopivaa ei ole läytynyt.

nim. vihjeestä kiitollinen  :)








« Viimeksi muokattu: 03.01.23 - klo:17.33 kirjoittanut teele »

jarmala

  • Käyttäjä
  • Viestejä: 790
    • Profiili
Vs: Suorakaiteen muotoinen liukuvärjätty alue gnuplotilla
« Vastaus #1 : 17.12.22 - klo:00.41 »
Joskus olisi hauska saada jotain kuviakin, niin kokeilin gnplotia, joka on valmiina vakio Ubuntu 20.04 -koneessa.
Tarkoitus olisi saada suorakaiteen muotoinen liukuvärinen "heat map", kun havaintopisteet ovat valmiina m * n matriisissa

Olen kyllä paljonkin reuhannut gnuplotin kanssa, mutta en ole koskaan tarvinnut heatmappeja, joten niistä en osaa sen paremmin neuvoa. Yleensä netistä on kyllä löytynyt erinomaisen hyvin neuvoa gnuplotin käyttöön. Ei muuta kuin hakuihin lisää ja parempia hakusanoja...

Ehem, kokeilin nyt ihan kylmiltään googlettaa "gnuplot messi heat map", niin heti tuli ihan oikeaa heatmaps.dem -juttua. Vaikka ei niissä Messistä ollutkaan kyse...
Ubuntu 18.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 8 GB
Ubuntu 22.04 LTS, KDE Plasma, Celeron N5105, 8 GB

teele

  • Käyttäjä
  • Viestejä: 852
    • Profiili
Vs: Suorakaiteen muotoinen liukuvärjätty alue gnuplotilla
« Vastaus #2 : 28.12.22 - klo:22.32 »
 Heatmap oli hyvä hakusana, en varmaan osannut tehdä hakuja ensin.

Mutta nyt olisi vielä ainakin pari ongelmaa.

Vasen alakulma on aina kaikkein tummin, vaikka sen ja oikean yläkulman arvot ovat matriisissa melkein samat. Kuvassa taas oikea yläkulma on kaikkein vaalein, vaikka matrisissa se ei ole korkein arvo.

Jossain netissä tuli vastaan, että plot ja splot käsittelevät matriisin rivejä ja sarakkeita eri tavalla, mutta sitä en ole onnistunut löytämään uudestaan.

Miten saadaan splot-komennolla liukuvärialue, kun datapisteet ovat tasavälein matriisimuodossa.

Koodia: [Valitse]
4.37982  5.09036  5.53764  5.91142  6.35877 
4.42893  5.44399  6.14877  6.74925  7.52367 
4.89192  6.10789  6.86421  7.41315  7.98665 
6.03084  7.23144  7.78704  8.05249  8.00979

Yritän tulostaa matriisia tällä koodilla

Koodia: [Valitse]
reset

# wxt
set terminal wxt size 350,262 enhanced font 'Verdana,10' persist
# png
#set terminal pngcairo size 350,262 enhanced font 'Verdana,10'
#set output 'heat_map_interpolation3.png'

set border linewidth 0
unset key
unset colorbox
unset tics
set lmargin screen 0.1
set rmargin screen 0.9
set tmargin screen 0.9
set bmargin screen 0.1
set palette grey

set pm3d map
set pm3d interpolate 1,1
splot 'matriisi.data' matrix ###with image notitle


Komentojono menee päätteesä

Koodia: [Valitse]
gnuplot -p koe.gnuplot
kun komennot ovat tiedostossa     koe.gnuplot

Miten saisi gnuplotin piirtämän kuvan edes muistuttamaan matriisissa olevista soluarvoista.


Muokk.

Tämä olisi ehkä vähän lähempnä vielä toivottua kuvaa

Koodia: [Valitse]
gnuplot -p -e "set xtics 10 ; plot 'koe_02.data' matrix nonuniform with image notitle"
kun matriisi tiedostossa koe_02.data on

Koodia: [Valitse]
1         5         10       15      20        25
10      4.37982  5.09036  5.53764  5.91142  6.35877 
20      4.42893  5.44399  6.14877  6.74925  7.52367 
30      4.89192  6.10789  6.86421  7.41315  7.98665 
40      6.03084  7.23144  7.78704  8.05249  8.00979

Liukuvärjäys valitettavasti puuttuu, mutta sen saaminen mukaan niin, että reunimmaiset ruudut olisivat oikeilla arvoillaan, ei taida olla ihan helppoa ainakaan plot komennolla ja splot laskee ihan uudet arvot.


« Viimeksi muokattu: 03.01.23 - klo:17.30 kirjoittanut teele »