Gnuplot - 在点处绘制图像

时间:2016-04-27 09:47:43

标签: gnuplot

我知道之前有人问过using images for points但是我想知道是否有人可以提供更详细的帮助,或者gnuplot最近的更改是否会让这更容易?

我的问题略有不同,我不想重新打开6yo问题

我正在尝试制作类似于此的天气预报图: AIX weather widget screenshot

我有一些来自openweathermap的api的数据,一个图标集 - 绘制温度,降雨等等是微不足道的..我想做的是绘制图像/图标以显示温度图上方的天气

看起来center会起作用,但我怎样才能使center与数据点对应 - 或者更准确地说到数据点上方的几个像素

也会感激地收到任何其他建议

1 个答案:

答案 0 :(得分: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循环将图像绘制在所需位置。需要根据图像大小和绘图范围调整dx和dy(可以使用GPVAL_*数据自动调整)。

enter image description here