为了绘制方向的风速,我试图找到一种方法来绘制风速曲线,因为每个点都是沿风向定向的箭头。
我找到的第一个解决方案是在保持标准轴的情况下绘制矢量,效果仍然很好。
数据:
#Steps Speeds m/s Directions °
0 3.2 56
使用该命令
plot 'file.dat' using 1:2:(cos($3)):(sin($3)) with vectors head filled lt 2
我在风向的每个点上得到一个向量。
我的问题是我想用时间轴绘制。.这样我在2轴之间得到了不同的比例,所以我不再有圆角,而是一种椭圆形。东方和西方的向量变短。
有人看到问题,有想法解决方案吗?我绝对希望每个点值或某些点值都像定向箭头一样显示。
谢谢
答案 0 :(得分:1)
绘制一次以加载状态变量GPVAL_*
。然后使用缩放值重新绘制箭头xdelta和ydelta。可能您需要一些其他校正,以使箭头的大小合理。叫那个LEN。
plot 'file.dat' using 1:2 with points # just to get the scaling
SCALE = (GPVAL_X_MAX - GPVAL_X_MIN) / (GPVAL_Y_MAX - GPVAL_Y_MIN)
plot 'file.dat' using 1:2:(LEN*cos($3)*SCALE):(LEN*sin($3)) with vectors
答案 1 :(得分:0)
我在这里做的代码
# Setting xdata to time.
set xdata time
set timefmt "%Y-%m-%d-%H:%M"
# set format x controls the way that gnuplot displays the dates on the x axis.
# "%Y-%m-%d" is the same as "%F", but "%F" applies to output only; it won't work
# for timefmt, which controls data reading.
set format x "%H:%M"
set xrange ["2018-10-23-06:00":"2018-10-23-19:00"]
#set yrange [0:12]
FILE="history_export_2018-11-06T13_23_09.dat"
set angles degrees
set grid mxtics mytics xtics ytics
set key outside bmargin left spacing 1.8
set key maxrows 1
set ylabel 'Vitesse [Klm/s]'
set xlabel 'Temps [hh:mm]'
#set title "Simple Plots"
set title font "Arial,20" norotate
LEN=1.8
plot FILE using 1:3 with lines # just to get the scaling
SCALE = (GPVAL_X_MAX - GPVAL_X_MIN) / (2*(GPVAL_Y_MAX - GPVAL_Y_MIN))
#SCALE = (GPVAL_X_MAX - GPVAL_X_MIN) / (2*(GPVAL_Y_MAX - GPVAL_Y_MIN)) * (GPVAL_TERM_YMAX - GPVAL_TERM_YMIN) / (GPVAL_TERM_XMAX - GPVAL_TERM_XMIN) * GPVAL_TERM_XSIZE / GPVAL_TERM_YSIZE
plot FILE using 1:3:(LEN*cos($4)*SCALE):(LEN*sin($4)) with vectors head filled lc 7 title"Directions" ,\
FILE using 1:3 smooth csplines title "Vitesse",\
FILE using 1:5 smooth csplines t "Rafale"
还有一些数据
#Year-Month-Day-Hour:Minute Temperature [2 m above gnd] Wind Speed [10 m above gnd] Wind Direction [10 m above gnd] Wind Gust [sfc]
2018-10-23-00:00 8.62 16.26 354.92 21.96
2018-10-23-01:00 7.91 15.19 354.56 222.32
2018-10-23-02:00 7.26 14.80 355.82 27.00
2018-10-23-03:00 6.51 12.78 350.27 18.00
2018-10-23-04:00 8.24 18.06 355.43 23.40
2018-10-23-05:00 8.21 15.94 353.52 23.04
2018-10-23-06:00 8.15 14.92 351.67 21.60
2018-10-23-07:00 8.15 14.44 355.71 25.56
2018-10-23-08:00 8.24 15.50 357.34 26.64
2018-10-23-09:00 8.70 17.64 360.00 28.08
2018-10-23-10:00 10.08 17.64 360.00 27.36
2018-10-23-11:00 12.79 18.37 2.25 24.84
2018-10-23-12:00 15.43 23.44 3.52 28.44
2018-10-23-13:00 16.59 23.86 255.19 29.88
2018-10-23-14:00 17.32 23.08 93.58 28.08
2018-10-23-15:00 17.75 23.08 3.58 28.08
2018-10-23-16:00 17.64 21.97 1.88 27.00
2018-10-23-17:00 16.55 18.75 3.30 25.20
2018-10-23-18:00 13.04 13.00 4.76 27.36
2018-10-23-19:00 11.45 10.90 352.41 25.56
2018-10-23-20:00 10.21 11.12 330.95 25.56
2018-10-23-21:00 9.14 11.98 327.26 26.64
2018-10-23-22:00 8.48 12.90 337.01 29.88
2018-10-23-23:00 7.99 12.25 335.70 31.32
它工作得很好,我们推测矢量的长度之间存在一些差异,我真的不知道时间2是否合适,但似乎可以校正长度。 我看不出两个音阶之间有什么区别。
谢谢你的提示,但是当我把头固定好时,不要改变任何东西。
这就是我用LEN = 0.4得到的结果
LEN=0.4
set style arrow 1 head fixed filled size screen 0.03,15,135 ls 1
plot FILE using 1:3 with lines # just to get the scaling
#SCALE = (GPVAL_X_MAX - GPVAL_X_MIN) / (2*(GPVAL_Y_MAX - GPVAL_Y_MIN))
SCALE = (GPVAL_X_MAX - GPVAL_X_MIN) / ((GPVAL_Y_MAX - GPVAL_Y_MIN)) * (GPVAL_TERM_YMAX - GPVAL_TERM_YMIN) / (GPVAL_TERM_XMAX - GPVAL_TERM_XMIN) * GPVAL_TERM_XSIZE / GPVAL_TERM_YSIZE
plot \
FILE using 1:3:(LEN*cos($4-180)*SCALE):(1.5*LEN*sin($4-180)) with vectors arrowstyle 1 title"Directions" ,\
FILE using 1:3 smooth csplines title "Vitesse",\
FILE using 1:5 smooth csplines t "Rafale"
可能是我做错了,但我喜欢第一个,而且看起来像我想做的事。
谢谢你们