我有一个疑问。如何通过 gnuplot 旋转绘图?
---------------------------
Row data.
0.000 0.0000157
0.001 0.0491343
0.002 0.0644647
0.003 0.0637064
0.004 0.063162
…
30.000 1.70000
---------------------------
我使用低数据制作了两个图 (A)、(B)。
(A) 图形命令
gnuplot> plot "RMSD_DATA.txt" using 1:2 with line
(B) 图形命令
bin_width = 0.001
bin_number(x) = floor(x/bin_width)
rounded(x) = bin_width * bin_number(x)
plot "MY_RMSD.txt" using (rounded($2)):(2) smooth frequency with line
所以,我想知道如何旋转B图。
我不关心标签旋转。
要“反转函数”,修改“绘图”线就足够了:
plot "MY_RMSD.txt" using 2:(rounded($2)) smooth frequency with line
要反转轴,您可以在绘图之前设置范围,反转最大值和最小值:
set yrange [Max:Min]
(如果我理解得很好,在你的情况下,Min = 0,Max = 30。)
OP 的原标题“如何通过 gnuplot 旋转图表”并没有描述完整的故事。实际的事情是创建横向直方图。
以下示例说明了 Christoph 在评论中基本上提到的内容。
编辑:现在将第二个图的 y 范围设置为与第一个图相同。
脚本:
### plotting sideways histogram
reset session
# create some random test data
set table $Data
set samples 2000
plot '+' u (x0=$0):(invnorm(rand(0))) w table
set samples 1000
plot '+' u (x0+$0):(invnorm(rand(0))*0.5-2) w table
unset table
graphSplit = 0.75
binwidth = 0.25
bin(x) = floor(x/binwidth)*binwidth
set xrange[:] noextend
set key noautotitle
set multiplot
set rmargin screen graphSplit
set offset graph 0.05, graph 0.05,0,0
plot $Data u 1:2 w l
set rmargin -1
set lmargin screen graphSplit+0.02
set yrange[GPVAL_Y_MIN:GPVAL_Y_MAX] # set identical range as first plot
unset ytics
set table $Histo
plot $Data u (bin($2)):(1) smooth freq w l
unset table
plot $Histo u 2:1 w l
unset multiplot
### end of script
结果: