【问题标题】:GNU plot: How to plot a sphere and imported file on the same frame?GNUplot:如何在同一帧上绘制球体和导入的文件?
【发布时间】:2016-07-11 06:44:03
【问题描述】:

我对 GNU plot 很陌生。现在,我正在尝试绘制一个球体并在 同一帧 处导入.txt 文件。但是,我想不出合适的方法。这是我的尝试:

  1. 仅使用 splot

    set parametric ; unset pm3d ; splot [-pi:pi] [-pi/2:pi/2] cos(u)*cos(v), cos(u)*sin(v), sin(u) ; unset parametric ; splot "traj_3dtest.txt" u 2:3:4

    但输出文件中只有splot "traj_3dtest.txt" u 2:3:4

  2. 使用 multiplot

    set parametric splot cos(u)*cos(v), cos(u)*sin(v), sin(u) splot "traj_3dtest.txt" u 2:3:4

    但输出显示重叠了两个图,prnt_scrn_1

这里还有一个额外的问题:如何绘制球形“表面”?我的意思是,我不想要一个有轮廓的球体,而是一个灰色的表面。

注意:数据文件格式

# T X Y Z Vx Vy Vz 1.00 -0.429 -0.847 0.314 -.09755 -.29510 -.15748 2.00 -0.429 -0.848 0.314 -.09752 -.29504 -.15750 3.00 -0.429 -0.848 0.313 -.09749 -.29497 -.15752 4.00 -0.429 -0.848 0.313 -.09746 -.29491 -.15755

【问题讨论】:

    标签: linux gnuplot


    【解决方案1】:

    如果您希望两者在同一个框架中,但不重叠:

    splot cos(u)*cos(v), cos(u)*sin(v), sin(u), "traj_3dtest.txt" u 2:3:4
    

    从您的 multiplot 示例中,您将拥有两个带有单独轴的图:

    set multiplot layout 2,1
    splot cos(u)*cos(v), cos(u)*sin(v), sin(u)
    splot "traj_3dtest.txt" u 2:3:4
    

    set multiplot
    
    set origin 0,0.5
    set size 1,0.5
    splot cos(u)*cos(v), cos(u)*sin(v), sin(u)
    
    set origin 0,0
    set size 1,0.5
    splot "traj_3dtest.txt" u 2:3:4
    

    【讨论】:

    • 谢谢!我正在寻找的更像是第一个解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多