- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Gnuplot 中制作一些 3D 表面图,在我的图的每个边界上都有刻度线会非常有用。在附加的示例图中,左上角或右上角的水平边界(边界 256 和 512)没有刻度线。为了在背面垂直平面上绘制垂直网格线,我需要在这些边界上有刻度线。我怎样才能做到这一点?
最佳答案
我还没有找到使用grid
和border
来解决这个问题的方法。但是,有一个相对简单的解决方法,只有在您每次绘制数据时不更改范围时才有用。
基本上,您在后墙上绘制一个恒定曲面,该曲面与 x-y 平面中网格线的线型、数量和位置相匹配。
首先,设置范围。我给它们贴上了标签,因为我们稍后会需要这些数字。
xmin=0 ; xmax = 100
ymin=0.01 ; ymax=1000
zmin=0 ; zmax=990
set xrange [xmin:xmax]
set yrange [ymin:ymax]
set zrange [zmin:zmax]
设置 z 轴与 x-y 平面的交点 (ticslevel),我猜测一个视角在视觉上与您的示例相匹配。我们想在 multiplot
之前设置这些。
set ticslevel 0.0
set view 60,45,1
现在有趣的来了。对于这部分,您必须知道 x-y 平面中的网格线数量(与 x 和 y 轴上的主要抽动线数量相同)。我们将首先绘制后网格墙,因此它们最后位于您的数据/函数后面。此外,我关闭了这部分的网格和边框,但如果您保留它们,它们应该完全重叠。
set multiplot
unset grid
set border 0
即使 y 轴具有对数刻度,网格也是线性分隔的(等距网格线)。所以此时我想要 y 轴上的线性刻度。 (如果您在此之前 set logscale y
,请将其注释掉。)我不想在 y 轴上使用线性标签,因为它们在对数刻度上不同,所以我相应地设置了格式。
set format y ""
set isosamples 6,9 # - set this to number of tics on y-axis,z-axis
这是唯一可能会在您绘制不同范围时发生变化的手动设置。您需要将 isosamples
的数量设置为 y 轴、z 轴上的抽动点数量。
要控制 gnuplot 将对每个表面使用多少行,我们需要设置等值样本(在上面完成)和虚拟变量 u,v
的范围。注意线型 0,这是网格线型。我在 x = xmin 处绘制了我的第一堵墙:
set parametric
set urange [ymax:ymin]
set vrange [zmax:zmin]
splot xmin,u,v w lines lt 0
类似地,我们在 y = ymax 处做另一面墙。
set urange [xmin:xmax]
set vrange [zmin:zmax]
splot u,ymax,v w lines lt 0
unset parametric
现在我有了墙,我可以绘制图片中已有的内容。设置边界、抽动、重新启用我们之前禁用的 y 轴标签、在 y 轴上设置对数刻度(现在是个好时机)并将等样本重置为默认值。
set xtics mirror
set ytics mirror
set ztics mirror
set grid ytics xtics back
set logscale y
set format y " %g"
set isosamples 10,10
并按照您习惯的方式绘制您的数据/函数。
splot 'data.txt' w lines
unset multiplot
我们完成了......
可能需要的修改:
我想您的 x 轴和 y 轴会与我的不同,因为可以通过类似 view 60,135,1
的方式轻松实现反向。不过,这也会切换 x 和 y。然后,您的表面将改变坐标。
关于gnuplot - 如何在 3d 绘图的顶部边界放置刻度线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13458688/
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我试图用这种形式简单地获取数字 28 integer+space+integer+integer+space+integer我试过这个正则表达式 \\s\\d\\d\\s 但我得到了两个数字11 和
最近一直在学习D语言。我一直对运行时感到困惑。 从我能收集到的关于它的信息中,(这不是很多)我知道它是一种有助于 D 的一些特性的运行时。像垃圾收集一样,它与您自己的程序一起运行。但是既然 D 是编译
想问一下这两个正则表达式有区别吗? \d\d\d 与 \d{3} 我已经在我的本地机器上使用 Java 和 Windows 操作系统对此进行了测试,两者都工作正常并且结果相同。但是,当在 linux
我正在学习 Go,而且我坚持使用 Go 之旅(exercise-stringer.go:https://tour.golang.org/methods/7)。 这是一些代码: type IPAddr
我在Java正则表达式中发现了一段令我困惑的代码: Pattern.compile( "J.*\\d[0-35-9]-\\d\\d-\\d\\d" ); 要编译的字符串是: String string
我在 ruby 代码上偶然发现了这个。我知道\d{4})\/(\d\d)\/(\d\d)\/(.*)/是什么意思,但是\1-\2-\3-\4 是什么意思? 最佳答案 \1-\2-\3-\4 是 b
我一直在努力解决这个问题,这让我很恼火。我了解 D 运行时库。它是什么,它做什么。我也明白你可以在没有它的情况下编译 D 应用程序。就像 XoMB 所做的那样。好吧,XoMB 定义了自己的运行时,但是
我有两个列表列表,子列表代表路径。我想找到所有路径。 List> pathList1 List> pathList2 当然是天真的解决方案: List> result = new ArrayList>
我需要使用 Regex 格式化一个字符串,该字符串包含数字、字母 a-z 和 A-Z,同时还包含破折号和空格。 从用户输入我有02-219 8 53 24 输出应该是022 198 53 24 我正在
目标是达到与this C++ example相同的效果: 避免创建临时文件。我曾尝试将 C++ 示例翻译为 D,但没有成功。我也尝试过不同的方法。 import std.datetime : benc
tl;dr:你好吗perfect forwarding在 D? 该链接有一个很好的解释,但例如,假设我有这个方法: void foo(T)(in int a, out int b, ref int c
有什么方法可以在 D 中使用abstract auto 函数吗? 如果我声明一个类如下: class MyClass { abstract auto foo(); } 我收到以下错误: mai
有没有人为内存中重叠的数组切片实现交集?算法在没有重叠时返回 []。 当 pretty-print (使用重叠缩进)内存中重叠的数组切片时,我想要这个。 最佳答案 如果您确定它们是数组,那么只需取 p
我已经开始学习 D,但我在使用 Andrei Alexandrescu 所著的 The D Programming Language 一书中提供的示例时遇到了一些麻烦。由于 int 和 ulong 类
如何创建一个不可变的类? 我的目标是创建一个实例始终不可变的类。现在我只是用不可变的方法和构造函数创建了一个“可变”类。我将其称为 mData,m 表示可变。然后我创建一个别名 alias immut
不久前我买了《The D Programming Language》。好书,很有教育意义。但是,我在尝试编译书中列出的语言功能时遇到了麻烦:扩展函数。 在这本书中,Andrei 写了任何可以像这样调用
我在 D http://www.digitalmars.com/d/2.0/lazy-evaluation.html 中找到了函数参数的惰性求值示例 我想知道如何在 D 中实现可能的无限数据结构,就像
这个问题在这里已经有了答案: 12 年前关闭。 Possible Duplicate: Could anyone explain these undefined behaviors (i = i++
当前是否可以跨模块扫描/查询/迭代具有某些属性的所有函数(或类)? 例如: source/packageA/something.d: @sillyWalk(10) void doSomething()
我是一名优秀的程序员,十分优秀!