2016-04-27 11 views
2

In einem Multiplot zeichne ich 3 Karten mit unterschiedlicher Palettenfarbe (siehe Code unten). Ich möchte im vierten Quadrat meines Multiplot die Summe der drei anderen, dh rote Teile, blaue Teile, grüne Teile und eine Kombination von rot + blau + grün abhängig von den Werten der Spalten 14, 15 und 16.Summenpalette mit pm3d

set view map; set size square 
set xlabel "delta mu Al" 
set ylabel "delta mu Mn" 
set zlabel "fraction atomique" 

set multiplot layout 2,2 
set title "Fer" 
set palette defined (0 "white", 1 "red") 
splot "res700.dat" u 3:4:($16/3456) t "Fe" with pm3d 

set title "Alu" 
set palette defined (0 "white", 1 "green") 
splot "res700.dat" u 3:4:($14/3456) t "Fe" with pm3d 

set title "Mn" 
set palette defined (0 "white", 1 "blue") 
splot "res700.dat" u 3:4:($15/3456) t "Fe" with pm3d 

unset multiplot 

Antwort

2

Verwenden Sie rgb variable. Mit Schwarz als no-Signalfarbe, ergibt dies:

set view map; set size square 
set xlabel "delta mu Al" 
set ylabel "delta mu Mn" 
set zlabel "fraction atomique" 

set isosample 100 
Fe(x,y)=x*y 
Al(x,y)=(1-x)*y 
Mn(x,y)=x*(1-y) 

set multiplot layout 2,2 
set title "Fer" 
set palette defined (0 "black", 1 "red") 
splot [0:1][0:1] "++" u 1:2:(Fe($1,$2)) t "Fe" with pm3d 

set title "Alu" 
set palette defined (0 "black", 1 "green") 
splot [0:1][0:1] "++" u 1:2:(Al($1,$2)) t "Al" with pm3d 

set title "Mn" 
set palette defined (0 "black", 1 "blue") 
splot [0:1][0:1] "++" u 1:2:(Mn($1,$2)) t "Mn" with pm3d 

set title "" 
rgb(r,g,b) = 65536 * int(255*r) + 256 * int(255*g) + int(255*b) 
unset colorbox 
splot [0:1][0:1] "++" u 1:2:(rgb(Fe($1,$2),Al($1,$2),Mn($1,$2))) t "" with pm3d lc rgb variable 

unset multiplot 

enter image description here

+0

Ich weiß wie kein-Signal wollte. Also habe ich die Funktion 'rgb' wie folgt geändert:' rgb (r, g, b) = 65536 * int (255 * r) + 256 * int (255 * g) + int (255 * b) ' –

+0

Sie haben die Farbe unscharf geschaltet Bar. Ist es möglich, ein Dreieck zu zeichnen: Eine rote Ecke als "Fer", eine grüne Ecke als "Alu" und die letzte als "Mn"? –

+1

Ja, Sie können ein separates Plot innerhalb eines Multiplots erstellen, dessen Koordinaten explizit eingegeben werden sollen. Ich denke, für Klarheit sollten Sie eine separate Frage stellen, wenn Sie Hilfe benötigen. – Joce