如何解决Gnuplot 用等高线在 xy 图上绘制 3D 数据
我尝试在带有轮廓的 xy 平面图上绘制 3D 数据。我设法获得了颜色图,但我遇到的问题很少。 我的数据分 3 列(见下面的代码),每行之间有空格。
0.000000000 0.897777778 0.000000000
0.000000000 0.906666667 0.000000000
0.000000000 0.915555556 0.000000000
0.000000000 0.924444444 0.000000000
0.000000000 0.933333333 0.000000000
0.000000000 0.942222222 0.000000000
0.000000000 0.951111111 0.000000000
0.000000000 0.960000000 0.000000000
0.000000000 0.968888889 0.000000000
0.000000000 0.977777778 0.000000000
0.000000000 0.986666667 0.000000000
0.000000000 0.995555556 0.000000000
0.111111111 0.453837597 0.008893913
0.111111111 0.462736374 0.009285188
0.111111111 0.471635150 0.009686812
0.111111111 0.480533927 0.010098938
0.111111111 0.489432703 0.010521720
0.111111111 0.498331479 0.010955318
0.111111111 0.507230256 0.011399894
0.111111111 0.516129032 0.011855617
我的代码如下:
set terminal postscript eps color enhanced "Helvetica" 14
set output 'phiCH_TpFR.eps'
set contour base
set style textbox opaque noborder
unset surface
set style textbox opaque noborder
set cntrparam level discrete 0.5,1,1.5,2,2.5,3
set cntrparam bspline
set isosamples 250,250
set view map
set xrange [0:10]
set yrange [0.55:0.95]
set cbrange [0:4]
set dgrid3d 50,50,50 gauss .005,.035
set table "contour_CH.txt"
splot "data_sensibilite_correlation_Tpfr_CH"
unset table
unset contour
set surface
set table "dgrid_CH.txt"
splot "data_sensibilite_correlation_Tpfr_CH"
unset table
reset
set pm3d map
unset key
set xrange [0:10]
set yrange [0.55:0.95]
set cbrange [0:4]
set xlabel "{/Symbol e}_{/Symbol q} [%]"
set ylabel "T_b / T_{w hs}"
set cblabel "{/Symbol e}_{{/Symbol F} hs} [%]"
splot 'dgrid_CH.txt' w pm3d,'contour_CH.txt' w l lc rgb "black",'contour_CH.txt' every 10 w labels
我的问题如下:
-
我没能得到等高线图的标签。我能做些什么来解决这个问题?我注意到在文件“contour_CH.txt”中并非所有的轮廓都有标签。我不知道这是否是我的问题的原因。
#轮廓1,标签:2.5
7.29125 0.900642 2.5
7.26953 0.901372 2.5
7.24415 0.902123 2.5
7.21428 0.902917 2.5
7.18137 0.903743 2.5
7.14745 0.904582 2.5
7.11456 0.905415 2.5
7.08473 0.906223 2.5
7.05941 0.906997 2.5
7.03775 0.907755 2.5
7.0183 0.908527 2.5
6.99961 0.909341 2.5
....#轮廓2,标签:
9.88889 0.816038 2.5
9.80771 0.818407 2.5
9.75248 0.820019 2.5
.... -
我的轴和颜色图之间有一个空白区域。我不明白为什么,因为我的数据比绘图范围更宽。
提前感谢您的回答,
马丁
解决方法
如果您选中 help contour
,它会告诉您轮廓仅适用于 splot
。但是,您可以将数据散布到表格中,并将此等高线表格用于 plot
。 $Contour
的第一个块(由两个空行分隔)包含数据,接下来的块包含由单个空行分隔的轮廓线数据。您可以通过 index 1::1
解决后者。
我会尝试这样的事情作为起点,当然还有改进的空间:(用 gnuplot 5.0.0 和 5.2.8 测试)。显然,您的数据存在偏差。
代码:
### plot heatmap with contour lines
reset session
FILE = "Martin7data.dat"
set contour
set cntrparam level discrete 0.5,1,1.5,2,2.5,3
set table $Contour
splot FILE u 1:2:3
unset table
set style textbox opaque
unset key
set view
plot FILE u 1:2:3 w image,\
$Contour u 1:2 index 1::1 w l lc "red",\
'' u 1:2:3 index 1::1 every ::0::0 w labels boxed
### end of code
结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。