【问题标题】:gnuplot: Plotting a function on the surface of a spheregnuplot:在球体表面上绘制函数
【发布时间】:2019-09-22 14:37:32
【问题描述】:

我有一个函数,比如f(theta, phi) = sqrt(1 - (sin(theta)*sin(phi))**2) + 5 * sqrt(1 - (sin(theta)*cos(phi))**2),我想在球体表面绘制彩色图。但是,我不知道如何将这个函数输入splot 以便在没有首先在表中生成具有适当值的文件的情况下实现这一点。

我怎样才能让gnuplot 这样做?

【问题讨论】:

    标签: plot gnuplot heatmap


    【解决方案1】:

    您可以使用特殊文件名“++”代替生成文件,请参阅help special。我认为gnuplot demo page 的最后一个示例有您的用例。稍作修改即可简化:

    xx(u, v) = cos(v) * cos(u)
    yy(u, v) = cos(v) * sin(u)
    zz(u, v) = sin(v)
    f(theta, phi) = sqrt(1 - (sin(theta)*sin(phi))**2) + 5 * sqrt(1 - (sin(theta)*cos(phi))**2)
    
    set parametric
    set isosamples 121, 61
    set samples 121, 61
    set urange [-pi:pi]
    set vrange [-pi/2:pi/2]
    
    set border 4095
    set view equal xyz
    set xyplane 0
    
    splot "++" using (xx($1,$2)):(yy($1,$2)):(zz($1,$2)):(f($1,$2)) with pm3d notitle
    

    这是结果:

    请仔细检查球坐标的定义是否匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多