【问题标题】:GNUPLOT: Plotting on the surface of a sphereGNUPLOT:在球体表面上绘图
【发布时间】:2015-03-06 11:56:15
【问题描述】:

我有一个依赖于 phi 和 theta 的函数,我想将其绘制在球体的表面上。 日期存储在带有列的 .txt 文件中:

1: x = R*sin(theta)*cos(phi)
2: y = R*sin(theta)*sin(phi)
3: z = R*cos(theta)
4: density

我使用以下 gnuplot 代码进行绘图:

set terminal wxt size 800,800
set mapping cartesian
set view equal xyz
set xlabel 'x'
set ylabel 'y'
set zlabel 'z'
splot "densityprofile_100.000.txt" u 1:2:3:4 with pm3d
pause -1

不幸的是,Gnuplot 似乎无法正确表示球体上的颜色。似乎有一些阴影,我无法摆脱;看这里的图片:

当我用鼠标转动球体时,阴影越来越小,但没有完全消失的位置。 任何帮助表示赞赏。

【问题讨论】:

  • 请在此处上传图片并发布链接。然后有较高声誉的人可以为您包括它。另外,请提供数据文件,以便重现/测试/修复您的问题。
  • 一个猜测:尝试使用set autoscale cbfix,这样颜色范围就恰好涵盖了您在数据文件中的值。
  • 好的,我添加了图片内联。您还可以在某处上传您的数据文件吗?没有它,我无法检查出什么问题。
  • 找到了解决方案。如果用户用户仍然需要数据文件,请告诉我,我会尝试上传。

标签: plot geometry gnuplot


【解决方案1】:

我通过添加以下行找到了我的问题的解决方案:

set pm3d depthorder

【讨论】:

    【解决方案2】:

    猜测,深度排序可能会造成一些麻烦。您是否尝试过 pm3d“hidden3d”选项?

    来自 pm3d 上的 gnuplot 帮助:

    选项 hidden3d 将线型作为参数,该线型必须是 由 set style line .... 创建(样式不需要出现在 设置 pm3d,但在绘图时必须存在)。如果设置,行是 使用指定的线型绘制,考虑到隐藏线 移动。这比使用命令集效率高得多 hidden3d 因为它并没有真正计算隐藏线的去除,而只是 以正确的顺序绘制填充的多边形。所以推荐 使用 pm3d 时的选择是

     set pm3d at s hidden3d 100
     set style line 100 lt 5 lw 0.5
     unset hidden3d
     unset surf
     splot x*x+y*y
    

    【讨论】:

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