2016-04-27 5 views
2

Я знаю, что это было задано раньше, чем некоторое время назад using images for points, но мне было интересно, может ли кто-нибудь предоставить более подробную помощь или какие-либо последние изменения в gnuplot делают это проще?Gnuplot - изображение участка в точке

Мой вопрос немного отличается, и я не хочу, чтобы снова открыть 6yo Question

Я пытаюсь создать сюжет для погоды прогноз похож на это: AIX weather widget screenshot

У меня есть некоторые данные, из api openweathermap, а также набор иконок - построение темпа, осадков и т. д. тривиально. Что бы я хотел сделать, это нарисовать изображение/значок, чтобы показать погоду чуть выше температурного графика

Похоже, center будет работа, но как я могу получить center, чтобы соответствовать точки данных - или, точнее, на несколько пикселей выше DataPoint

Любые альтернативные предложения также будут с благодарностью приняты

+0

Не могли бы вы после того, что вы уже пробовали до сих пор? – bibi

+0

Я пока не добился какого-либо прогресса в этом вопросе, так как не уверен, в каком направлении двигаться. Как упоминалось выше, я думаю, что «центр» может работать, если я могу правильно его разместить. Я надеялся, что будет функция использования изображения в виде столбца/поля . Другим вариантом может быть использование rgbimage и попытка вручную поместить изображения в соответствии с координатами точек данных. Это в основном, почему я прося о помощи, поскольку я не уверен, какой вариант - лучший способ для продолжения. – draki

ответ

1

Вот как сделать это в два этапа:

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 

Первая шаг заключается в создании списков (элементов, разделенных пробелами в строках X, Y и IMG) с данными графика. Затем for-loop отображает изображения в нужном месте. Dx и dy необходимо отрегулировать в зависимости от размера изображения и диапазонов графика (можно было бы автоматизировать с данными GPVAL_*).

enter image description here

+0

Спасибо ОЧЕНЬ за помощь - это именно то, чего я пытаюсь достичь. Я понимаю (большинство из), что это делает .. Но .. Использование вашего скрипта, как только создает сюжет с «плюсами» в точках для меня .. Я переместил значки «солнце» и «облако» в тот же каталог. Они имеют размер 128x128 пикселей. Я установил «терминал png» и указал путь для png. И у меня есть пара вопросов (возможно, очень простой, я боюсь - заранее заявляет). Как указать «сохраненные данные» в файл данных (называемый results.csv)? Как указать список изображений в определенный каталог? спасибо! – draki

+0

Просто понял, что это интерактивный gnuplot, с которым я не знаком. Я пытаюсь создать скрипт (на Ubuntu) и не могу заставить его работать как скрипт. Кроме того, как я могу указать «StoreData» в мой файл данных, который выглядит примерно так: '- главная/температура погоды/0/значок \t dt_txt - 8,65 \t \t 03D 2016-04-29 9: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

Это может использоваться как скрипт, просто сохранить его в файле и запустить 'gnuplot -передать на нем или добавить параметр терминала и вывода перед последней командой 'plot' для сохранения в файл.Чтобы изменить источник данных, замените '' -'' в первой команде графика и измените 'использование', чтобы принять во внимание ваш конкретный формат. Вы можете задать другой вопрос, если у вас есть трудности с этим. – Joce

Смежные вопросы