#!/usr/bin/gnuplot # ©2019 Joachim Schwender # Erstellt eine Tabelle mit den Beleuchtungsstärken in Lux # als Zeile die Beliechtungszeiten und # als Spalten die Blendenwerte # Die Tabellenfelder sind mit einer Farbpalette eingefärbt die die Beleuchtungsstärke repräsentiert. # Die Werte werden berechnet und in eine Tabelle geschrieben # und anschliessend zum plotten wieder aus dieser Tabelle gelesen. # print "generiert Zahlentabelle der Beleuchtungsstärke zur Darstellung in Gnuplot" # BN='BeleuchtungsTabelle' #CSV=sprintf("%s%s",BN,'.csv') CSV=BN.'.csv' PDF=BN.'.pdf' PNG=BN.'.png' set print CSV # Ausgaben für print Befehl in Datei leiten ISO = 100.0 # ISO Zahl der Empfindlichkeit GrauWert = 0.18 # Reflektionsgrad für Grauwert (18%) Koeff = 0.43958 # Werte für die Tabelle, man könnte die Zahlenfolge auch berechnen... Blendenreihe="1 1.4 2 2.8 4 5.6 8 11 16 22 32" # Diese Zahlenfolge lässt sich nicht einfach berechnen da Rundungen drin sind. Zeitreihe="1 2 4 8 15 30 60 125 250 500 1000 2000 4000 8000 12500 16000 32000" # Xmax=0 # maximalwert der X-Koordinaten der Tabellen-Zellen vor dem Hochzählen mit Startwert belegen Ymax=0 # maximalwert der Y-Koordinaten der Tabellen-Zellen vor dem Hochzählen mit Startwert belegen # do for [y=1:words(Blendenreihe)] { do for [x=1:words(Zeitreihe)] { Blende = word(Blendenreihe,y) Zeit = word(Zeitreihe,x) Beleuchtung = Koeff / GrauWert * 100.0 / ISO * Blende**2.0 * Zeit Farbwert = log(Blende**2.0 * Zeit) print x, " ",y , " ", Farbwert, " ", Blende, " ", Beleuchtung Xmax=x # Maximalwerte merken Ymax=y } } # set print # Ausgaben mit print wieder auf die Konsole leiten # print "schreibe die PDF Datei." # set terminal pdf enhanced font 'arial,16' size 29.7cm,21cm set output PDF set size 0.9,0.5 set origin 0.05,0.30 set decimalsign locale unset key # Legende würde stören set view map set style data linespoints set xtics border in scale 0,0 mirror norotate offset character 0, 0, 0 set ytics border in scale 0,0 mirror norotate offset character 0, 0, 0 #set ztics border in scale 0,0 nomirror norotate offset character 0, 0, 0 set nocbtics set title "Erforderliche Beleuchtungsstärke E_V in Lux für Kombinationen aus Blende und Belichtungszeit" \ font ",24" set xrange [ 0 : Xmax+1 ] noreverse nowriteback set yrange [ 0 : Ymax+1 ] noreverse nowriteback set xtics out("" 0) # xtics löschen do for [n=1:words(Zeitreihe)] { set xtics out add (sprintf("1\n—\n%s",word(Zeitreihe,n)) n) } set ytics out ("1" 1, "1,4" 2, "2" 3, "2,8" 4, "4" 5, "5,6" 6, \ "8" 7, "11" 8, "16" 9, "22" 10, "32" 11, "Blende f" 12) tc rgb 'brown' font ",20" #set palette model HSV; set palette rgb 3,2,-2 #set palette rgbformulae -3, -24, 12 #set palette model XYZ functions gray**0.42+0.5, gray**0.2, 1 set palette model HSV functions 1.0-gray, 0.8-gray, 1 #set palette gray #set palette rgbformulae 3, -11, -6 #set palette rgbformulae 13, 1.24, 2.01 #set palette gray negative unset key unset colorbox set label sprintf("E_V = k * %1.0f/ISO * f² / t ; mit k=%1.6f / %2.2f ;\ E_V in Lux; Werte für die Empfindlichkeit 100 ISO",ISO,Koeff,GrauWert) at 2,-3 plot CSV using 1:2:3 with image, \ '' using 1:2:(($5 > 10000000) ? gprintf("%.0s %c",$5) :\ ($5 > 1000000) ? gprintf("%.1s %c",$5) :\ ($5 > 100000) ? gprintf("%.0s %c",$5) :\ ($5 > 10000) ? gprintf("%.0s %c",$5) :\ ($5 > 1000) ? gprintf("%.1s %c",$5) :\ ($5 > 100) ? gprintf("%.0s %c",$5) :\ gprintf("%.1s %c",$5)):($3) with labels center tc variable font ",20" set terminal png enhanced font 'arial,10' size 1600,800 set output PNG set size 0.93,0.93 set origin 0.05,0.04 replot