gnuplot:在样条的xy平面上投影轴标签和tic

时间:2018-10-23 22:46:00

标签: plot gnuplot surface

我想知道是否有一种方法可以使用gnuplot在投影图的xy平面上投影x和y轴标签和标记。

此示例显示了我想要的内容:

enter image description here

与我目前拥有的相反:

enter image description here

请注意标签在顶部图像中似乎是如何“放置”在xy平面上,而在底部图像中,标签始终垂直于查看者。我想知道是否有使用gnuplot做到这一点的简单方法。预先感谢。

2 个答案:

答案 0 :(得分:0)

问题很明显,但是gnuplot无法在平面上投影文本。

– Christoph 18年10月26日在4:36

答案 1 :(得分:0)

如果您绝对需要在xy平面上投影标签,并且不怕麻烦的解决方法,则可以尝试以下方法。

  • gnuplot可以将图像投影到xy平面上
  • 使用标签创建xy平面并将其另存为PNG
  • 使用多图叠加和对齐两个图

但是这里出现了困难:,您需要通过适当设置边距来完美对齐两个图。我不得不承认,我仍然不知道如何通过一些简单的计算自动将它们对齐,而不是乏味地手动摆弄边距。除此之外,您需要相应地设置大小,字体和偏移量。作为起点,请参见以下代码。欢迎改进。祝你好运!

代码:

### labels projected on xy-plane
reset session

# draw the bottom and save as PNG image
SizeX=500; SizeY=500
set term pngcairo size SizeX,SizeY
set output "tb3DLabelXY.png"

set size square
myMargin = 0.13
set margin screen myMargin, screen 1-myMargin, screen myMargin, screen 1-myMargin
set xrange[-10:10]
set xlabel "Precipitation amount, x" font ",20"
set y2range[-10:10]
set y2label "Precipitation amount, y" font ",20" offset -1.5,0
set y2tics rotate by 90 offset 0,-1
set tics font ",16"
unset ytics
set yrange[0:1]
set grid xtics, y2tics lw 2
plot -1 notitle
set output

reset session
set term wxt size 500,500  # or whatever terminal you have
set view equal xy
set view 60,60

set multiplot
    unset xtics
    unset ytics
    unset ztics
    unset xlabel    
    myMargin = 0.17
    # margins l,r,b,t
    set margins screen myMargin, screen 1-myMargin, screen myMargin, screen 1-myMargin
    set zrange[0:200]
    unset border
    splot 'tb3DLabelXY.png' binary filetype=png  with rgbimage notitle

    set border 4095
    set isosamples 20,20
    set xyplane at -100
    # margins l,r,b,t
    set margins screen 0.255, screen 0.74, screen 0.04, screen 0.81
    set xrange[-10:10]
    set yrange[-10:10]
    set zrange[-100:100]
    set ztics -80,40
    set hidden3d
    splot x*y

unset multiplot
### end of code

结果:

enter image description here