2017-06-22 2 views
1

Erstellen einer Heatmap mit gnuplot, ich möchte, dass die Tic-Labels aus der Datendatei oben und rechts von der Heatmap gelesen werden, aber die Einstellung axes x2y2 funktioniert nicht wie erwartet.Verwendung von x2y2-Achsen in einer Heatmap mit gnuplot

Beispiel Datendatei:

. sample1 sample2 sample3 
gene1 10 0 17 
gene2 11 2 21 
gene3 9 27 0 

Mit

plot "data.csv" matrix rowheaders columnheaders with image

ich diesen Plan zu bekommen, was in Ordnung ist:

enter image description here

Allerdings, wenn ich haben will die Tic-Labels auf dem x2 und y2 a xes, mit d

unset xtics 
unset ytics 
set x2tics 
set y2tics 
plot "data.csv" matrix rowheaders columnheaders using 1:2:3 axes x2y2 with image 

gnuplot verwendet Zahlen statt meiner Etiketten:

enter image description here

Gibt es eine Möglichkeit, die tic Etiketten aus der Datei zu dem x2 und y2-Achse lesen zu befestigen?

Antwort

1

Sie haben zu setzen x2label und y2label:

set x2label "Some label" 
set y2label "Some other label" 
plot sin(x) notitle axes x2y2 

enter image description here

gibt Wenn Sie auch die Strichmarkierungen an der oberen und rechten Seite verschieben möchten, dann müssen Sie ermöglichen sie für die x2 und y2 Achsen und deaktivieren sie für x und y:

set x2label "Some label" 
set y2label "Some other label" 
unset xtics 
unset ytics 
set x2tics 
set y2tics 
plot sin(x) notitle axes x2y2 

gibt

enter image description here

aktualisieren

Vielen Dank für Ihre Frage zu bearbeiten. Es scheint, dass Ihre Hauptfrage ist, ob Sie die Etiketten aus der Datendatei für die x2label und y2label lesen können. Ich bin mir nicht sicher, ob das möglich ist. Es scheint, dass sich die Optionen rowheaders und columnheaders immer auf das erste Koordinatensystem beziehen.

Als Workaround können Sie sich an xlabel/ylabel halten und sie auf die andere Seite des Diagramms verschieben. Dies könnte erfordern mit den Rändern spielen ein wenig:

set tmargin 2 
set lmargin 0.5 
set rmargin at screen 0.75 
set colorbox user origin screen 0.88, graph 0 size screen 0.05, graph 1 

set xtics offset 0, graph 1.07 
set ytics offset graph 1.15, 0 

plot "data.csv" matrix rowheaders columnheaders with image 

gibt

enter image description here

+0

Leider ist dies nicht mit Heatmaps arbeiten. Ich habe meine Frage verbessert, um es klarer zu machen. – migaspar

Verwandte Themen