【问题标题】:gnuplot pm3d with contour base带有轮廓基础的 gnuplot pm3d
【发布时间】:2021-12-28 20:43:50
【问题描述】:

我想在此图的 z=0 平面中添加等高线:

为了获得与此相似的东西(从书中回收)

我如何用 gnuplot 做到这一点?考虑生成 pm3d 图的代码如下:

set terminal pdfcairo enhanced font "palatino,42" fontscale 1.0 size 30, 22 background rgb 'white'
 set output 'stromegaJPDF_90.pdf'
#set border 4095 front lt black linewidth 1.000 dashtype solid
set style line 100  linecolor rgb "#f0e442"  linewidth 0.500 dashtype solid pointtype pointsize default
 #set view 50, 220, 1, 1
set samples 30, 30
set isosamples 30, 30
set surface
set title "Re=90"
 set cbrange [ * : * ] noreverse writeback
 set rrange [ * : * ] noreverse writeback
 set pm3d implicit at s
 set pm3d depthorder
 set pm3d interpolate 1,1 flush begin noftriangles border linecolor rgb "gray"  linewidth 1.000 dashtype solid corners2color mean
 set xrange[0:15]
  set logscale z
  set xlabel '{/Symbol w}^2/<{/Symbol w}^2>' enhanced
  set ylabel 'cos({/Symbol w}, W)' enhanced
   splot 'jpdfstrW_90.dat' t 'JPDF'

jpdfsrtW_90.dat 报告在这里enter link description here

【问题讨论】:

  • 在对数刻度上,你不能达到0。你能分享一下jpdfstrW_90.dat吗?
  • 确定!发现附在主要问题中
  • 我想获得投影......就像报告的第二张图一样!

标签: 3d gnuplot


【解决方案1】:

您必须拥有网格结构中的数据,即每个块中的条目数量相同(例如,在您的情况下为 100 个),但在您的第一个和最后一个块中,您的条目比一般少。 After fixing it,它应该通过添加 set contour both 来工作。在对数刻度上,您不能指望会显示 z=0,并且您还需要解决恰好 z=0 值的问题才能获得不错的视图。

对于简化的绘图文件,请考虑以下示例:

set contour both
set pm3d border linewidth 0.2

set logscale z
set zrange [1e-5:]

splot 'jpdfstrW_90.dat' u 1:2:($3+1e-5) w pm3d t 'JPDF'

要使等高线更粗,请仅使用等高线重新绘制数据:

splot 'jpdfstrW_90.dat' u 1:2:($3+1e-5) w pm3d t 'JPDF', "" u 1:2:($3+1e-5) t 'JPDF' with lines nosurf lw 2

后者产生:

要进一步customize contour lines,您需要手动定义行。要自定义计数器级别,请查看cntrparam。如果使用 log z,也许使用对数彩条也更自然。您也可以尝试基于科学原理的different color palettes。

考虑自定义轮廓线的以下脚本:

set contour both
set pm3d border linewidth 0.2

set linetype 1 lc rgb "black" lw 1.5 dt 1
set linetype 2 lc rgb "black" dt 1
set linetype 3 lc rgb "black" dashtype 2
set linetype 4 lc rgb "black" dashtype 3
set linetype 5 lc rgb "black" dashtype 4
set style line 1 lc rgb 'black' lw 1.5 dt 1
set style line 2 lc rgb 'black' dt 1
set style line 3 lc rgb 'black' dashtype 2
set style line 4 lc rgb 'black' dashtype 3
set style line 5 lc rgb 'black' dashtype 4

set logscale z
set zrange [1e-5:]
set log cb
set cntrparam levels discrete 1, 0.1, 0.002, 0.0005
splot 'jpdfstrW_90.dat' u 1:2:($3+1e-5) w pm3d notitle, "" u 1:2:($3+1e-5) t 'JPDF' with lines nosurf 

【讨论】:

  • 以及如何将线条做到颜色相同但样式不同?以及如何选择频率而不是 1 , 0.1, 0.001
  • 不错!!有没有办法获得相同颜色和不同样式的轮廓线?并且也可以选择频率(不同方面z=1 z=0.1 z=0.01 ...)
猜你喜欢
  • 2015-08-12
  • 2020-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多