2016-04-27 7 views
2

Ich weiß, das wurde vor using images for points vor einiger Zeit gefragt, aber ich habe mich gefragt, ob jemand detailliertere Hilfe zur Verfügung stellen kann, oder ob die jüngsten Änderungen in gnuplot dies einfacher machen?Gnuplot - Grundstück Bild am Punkt

Meine Frage ist etwas anders und ich wollte keine 6yo Frage

Ich versuche, ein Grundstück für ein Wetter wieder zu öffnen, die ähnlich wie diese Prognose zu produzieren: AIX weather widget screenshot

ich einige Daten von Openweathermap api, und ein Icon-Set - Plotten der Temp, Niederschlag, etc. ist trivial .. Was ich tun möchte, ist ein Bild/Symbol, um das Wetter direkt über dem Temperaturplot zeigen

Es sieht aus wie center würde arbeiten, aber wie bekomme ich center bis zu einem Datenpunkt entsprechen - oder genauer gesagt auf ein paar Pixel über den Datenpunkt

Alle Alternativvorschläge auch

+0

Könnten Sie bitte nach, was Sie bisher versucht haben? – bibi

+0

Ich habe noch nicht wirklich Fortschritte gemacht, da ich nicht sicher bin, in welche Richtung ich gehen soll. Wie oben erwähnt, könnte "center" funktionieren, wenn ich es richtig platzieren kann. Ich hatte gehofft, dass es eine Funktion sein, ein Bild als eine Spalte/Box verwenden Eine weitere Option rgbimage verwenden könnte, und versuchen Sie die Bilder manuell platzieren entsprechend der Datenpunktkoordinaten .. Dies ist im Grunde, warum ich bin um Hilfe zu bitten, wie ich bin nicht sicher, welche Option die beste Art und Weise – draki

Antwort

1

Hier ist dankbar empfangen werden würde, wie es in zwei Schritten zu tun:

IMG_LIST="cloud.png sun.png" 
X="" 
Y="" 
IMG="" 
storedata(x,y,index_img)=        \ 
     (X=X.sprintf(" %f",x),       \ 
     Y=Y.sprintf(" %f",y),       \ 
     IMG=IMG." ".word(IMG_LIST,int(index_img)),y) 

plot '-' using 1:(storedata($1,$2,$3)) 
0.5 23 2 
1.5 27 2 
2.5 19 1 
e 

plot [0:3][0:40] for [i=1:words(IMG)] word(IMG,i) binary filetype=png center=(word(X,i),word(Y,i)) dx=0.005 dy=0.05 with rgbimage notitle 

Erste Schritt besteht darin, Listen (durch Leerzeichen getrennte Elemente in den Strings X, Y und IMG) mit den Plot-Daten zu erstellen. Dann zeichnet eine For-Schleife die Bilder an der gewünschten Stelle auf. Die dx und dy müssen abhängig von Ihrer Bildgröße und den Diagrammbereichen angepasst werden (könnte mit GPVAL_* Daten automatisiert werden).

enter image description here

+0

Vielen Dank für die Hilfe zu gehen ist - das ist genau das, was ich zu erreichen bin versucht. Ich verstehe die (meisten), was dies tut .. Aber .. Arbeiten mit dem Skript als nur an den Punkten für mich ein Grundstück mit ‚Plus‘ erzeugt .. Ich habe ‚Sonne‘ und ‚Wolke‘ Icons verschoben das gleiche Verzeichnis. Sie sind 128x128 Pixel. Ich habe 'terminal png' eingestellt und einen Pfad für das PNG angegeben. Und ich habe ein paar Fragen (wahrscheinlich sehr einfach ich habe Angst - apols im Voraus). Wie kann ich ‚storedata‘ auf meine Daten-Datei verweisen (genannt results.csv)? Wie zeige ich die Liste der Bilder auf ein bestimmtes Verzeichnis? danke! – draki

+0

Habe gerade gemerkt, dass es gnuplot interactive ist - was mir nicht vertraut ist. Ich versuche, dies zu skripten (auf Ubuntu) und kann es nicht als Skript arbeiten. Auch, wie kann ich darauf 'storedata' auf meine Datendatei, die etwa wie folgt aussieht: '- main/temp Wetter/0/Symbol \t dt_txt - 8,65 \t 03d \t 2016-04-29 09:00:00 - 9.31 \t 04d \t 2016-04-29 12:00:00 - 9.27 \t 04d \t 2016-04-29 15: 00: 00' – draki

+0

Dies kann als Skript verwendet werden, speichern Sie es einfach in einer Datei und führen Sie 'gnuplot 'aus -perist 'darauf, oder fügen Sie eine Terminal-und Ausgabe-Option vor dem letzten 'plot' Befehl zum Speichern in eine Datei.Um die Datenquelle zu ändern, ersetzen Sie das '' -'' im ersten Plot-Befehl und ändern Sie das 'using', um Ihr spezifisches Format zu berücksichtigen. Sie können eine andere Frage stellen, wenn Sie Schwierigkeiten damit haben. – Joce