如何解决Gnuplot:如何将pm3d图继续到设置范围之外?
我在gnuplot中用pm3d
绘制数据点时遇到问题。在我的数据文件中,这些点(2-dim域)不是矩形对齐的,而是如图this中所示的抛物线形,其中数据点彼此之间未完全对齐。我的目标是为特定的pm3d
用xrange
创建一个热图,其中热图延续到所选xrange
的边界。
我做什么:
使用以下最小代码示例绘制带有pm3d的数据集:
set terminal qt
set xrange [-0.25:1.00]
set view map
splot "data.txt" u 1:2:3 with pm3d
我得到的:
我的数据文件heatmap,但是在切入x域的边界点处有一个难看的角,因为边界点彼此之间不在“上方”对齐。
我的期望:
一种热图,其中“热”值一直延续到域的真实边界,就像this图中所示的简单“带线”图所示。
我迄今为止为实现我期望的尝试:
我尝试了几个pm3d
选项,包括选项clip1in
,该选项仅需要在域内放入一个“加热矩形”的片段,但是result是不在域外,这并不能解决问题。
其他信息: 操作系统:Ubuntu 20.04
$ gnuplot -V
gnuplot 5.2 patchlevel 8
如果有人知道我如何实现我想做的事情,那么分享这些知识将是一件好事!
干杯!
解决方法
Gnuplot 5.4确实在z坐标上提供了这种平滑剪切,但是不幸的是,这没有帮助,因为在这种情况下您想剪切x。 这是通过手动干预执行x裁剪的示例。 x坐标的复杂表达式只是为了生成点 非正交网格。
xclip(x) = x > 6. ? 6. : x # clip x to maximum value of 6.
f(x,y) = sin(sqrt(x*x + y*y)) # some function to plot
set sample 21; set isosample 21
set view map
set xrange [-6 : 6]
unset key
set multiplot layout 1,2
set title "No clipping"
splot '++' using ($1+$2*$2/10.) :($2):(f($1,$2)) with pm3d
set title "Manual clipping at x=6"
splot '++' using (xclip($1+$2*$2/10.)):($2):(f($1,$2)) with pm3d
unset multiplot
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。