带等高线的 Gnuplot 、 pm3d

2023-12-04

我正在用一些值绘制一个矩阵 3D,并且我需要向图中添加等高线,是否有一个简单的 gnuplot 命令可以做到这一点?

我尝试了命令:“设置轮廓基础”,但只出现了 1 行,我认为应该有很多行。看matlab图片

当我在 gnuplot 中绘制它时,我只在左上角得到 1 条轮廓线。但其他一切都是正确的。

我的目标是让它在 matlab 中看起来像这样Matlab 绘图

我还找到了这个例子:请参阅评论中的链接(没有足够的代表),但我不明白应该在哪里放入 test.txt 中的数据值

test.txt

test.txt

gnuplot 命令

set view map
set yrange [0:30]
set xrange [0:30]
set dgrid3d 100,100,4
set contour base
splot 'test.txt' u 1:2:3 w pm3d

您缺少的是告诉 gnuplot 将轮廓放在哪里。这是通过set cntrparam levels incr -0.3,0.1,0.5命令的意思是:从 -0.3 开始,每隔 o.1 追踪一次轮廓,直至 0.5.

AFAIK如果你想让轮廓全黑,你必须将轮廓线保存在临时文件中(这里contour.txt).

所以你的脚本是

reset
set contour
unset surface
set cntrparam levels incr -0.3,0.1,0.5

set view map
set xrange [0:30]
set yrange [0:30]

set dgrid3d 100,100,4

set table "contour.txt"
splot 'test.txt'
unset table

unset contour
set surface
set table "dgrid.txt"
splot 'test.txt'
unset table

reset
set pm3d map
unset key
set palette defined (0 '#352a87', 1 '#0363e1',2 '#1485d4', 3 '#06a7c6', 4 '#38b99e', 5 '#92bf73', 6 '#d9ba56', 7 '#fcce2e', 8 '#f9fb0e')
set autoscale fix
set grid

splot 'dgrid.txt' w pm3d, 'contour.txt' w l lc rgb "black"

这给了你这个:

here

Note:

你可以摆脱插值文件(dgrid.txt)如果您通过在每行(即每 30 个数据点)后留下一个空行来格式化您的数据文件,因为它们已经是网格排序的。

这也可以通过awk脚本。但我又懒得去研究了...

其余部分将保持不变并按预期工作。

它应该是这样的:

在这种情况下,脚本将简单地变为:

set pm3d map impl
set contour
set style increment user
do for [i=1:18] { set style line i lc rgb "black"}
set cntrparam levels incr -0.3,0.1,0.5
set palette defined (0 '#352a87', 1 '#0363e1',2 '#1485d4', 3 '#06a7c6', 4 '#38b99e', 5 '#92bf73', 6 '#d9ba56', 7 '#fcce2e', 8 '#f9fb0e')
set autoscale fix
splot 'test.txt' w pm3d notitle

不需要中间文件并且具有更好的轮廓,因为数据不通过网格插值:

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带等高线的 Gnuplot 、 pm3d 的相关文章

  • 如何在 R 或 MATLAB 中为散点图创建阴影误差条“框”

    我想在 R 或 MATLAB 中创建一个简单的散点图 涉及两个变量 x 和 y 它们有与之相关的错误 epsilon x 和 epsilon y 然而 我不是添加误差线 而是希望在每个 x y 对周围创建一个 阴影框 其中框的高度范围从 y
  • 在散景图中隐藏图例

    LS 散景图会自动生成图例 如何隐藏 根本不显示 散景图中的图例 我试过 legend none 但没有成功 谢谢 如果我能稍微扩展一下 legend False是使散景图例不可见的正确方法 但它在绘图本身的创建中使用 而不是作为绘图对象的
  • 设置rgl设备的大小

    我的 rgl 设备的全屏 非全屏有问题 目前我使用R 3 00 我将 persp3d 图 库 rgl 绘制到我的设备中 它在一个非常小的窗口中打开 R代码 persp3d x y z theta 50 phi 25 expand 0 75
  • 作为动画的八度情节点

    我有以下八度脚本 TOTAL POINTS 100 figure 1 for i 1 TOTAL POINTS randX rand 1 randY rand 1 scatter randX randY hold on endfor 当我运
  • 更改 gnuplot 中 tics 之间的实际空间

    x 轴示例 Before 10 20 30 40 After 10 20 30 40 我已经搜索了一段时间 只找到了如何尽可能简单地缩放除抽动之间的大小之外的其他所有内容 我不想改变画布大小 终端大小 抽动大小 抽动数量等 我想拉伸 x 轴
  • 在Python中整齐地绘制PMF

    有没有一个库可以帮助我在 python 中整齐地绘制样本的概率质量函数 如下所示 通过matplotlib pyplot的stem模块 matplotlib pyplot stem args kwargs from matplotlib p
  • 以不同的采样率绘制两个函数

    我想绘制两个函数 sin x 和采样并量化的 sin x 脚本很简单 set xtic 1 set ytic 1 f1 x sin x 16 2 pi 8 round x x floor x lt 0 5 floor x ceil x pl
  • R-在多个图的外缘绘制居中图例

    我想在具有多个绘图的设备中的绘图区域之外绘制居中图例 SO 中提出了许多关于更改 R 图中图例位置的问题 略有不同 例如 1 R 组合图的通用标题和图例 https stackoverflow com questions 8736966 r
  • 如何在Matlab中绘制网络?

    我有一个矩阵AMatlab中的维数mx2每行包含两个节点的标签 显示网络中的直接链接 例如 如果网络有4矩阵的节点A可能A 1 2 1 3 2 1 2 4 3 2 4 1 4 2 其中第一行表示有一个链接来自1 to 2 第二行表示有一个链
  • 如何在向量中的所有点之间绘制线?

    我有一个包含二维空间中一些点的向量 我希望 MATLAB 用从每个点到每个其他点绘制的线来绘制这些点 基本上 我想要一个所有顶点都连接的图 你能用情节来做到这一点吗 如果可以 怎么做 一种解决方案是使用该函数为每个点组合创建一组索引MESH
  • Matlab 一个图上有多个图例 2014b

    我想在一个地块上有多个传说 该解决方案在 2014b 版本之前完美运行 我试图弄清楚如何使用手柄优雅地制作它 但到目前为止还没有成功 欢迎任何想法 2013b 的示例 x 1 50 y1 sin x 2 y2 cos x 2 f figur
  • 在 matplotlib 中绘制多边形的并集[重复]

    这个问题在这里已经有答案了 我正在尝试绘制几个多边形的并集matplotlib 具有一定的 alpha 水平 我当前的代码在交叉点处颜色较深 有没有办法让交叉路口与其他地方的颜色相同 import matplotlib pyplot as
  • 在 Gnuplot 中填充数据曲线下方的几个部分

    我有一组点 数据 定义一条曲线 我想用贝塞尔曲线平滑绘制该曲线 所以我想填充一些 x 值对之间的曲线下方的区域 如果我只有一对 x 值 那么这并不困难 因为我定义了一组新数据并用 fillcu 绘制它 例子 问题是我想在同一个情节中多次这样
  • Pandas 堆积条形图中元素的排序

    我正在尝试绘制有关某个地区 5 个地区的家庭在特定行业赚取的收入比例的信息 我使用 groupby 按地区对数据框中的信息进行排序 df df orig groupby District Portion of income value co
  • 如何绘制堆积比例图?

    我有一个数据框 x lt data frame id letters 1 3 val0 1 3 val1 4 6 val2 7 9 id val0 val1 val2 1 a 1 4 7 2 b 2 5 8 3 c 3 6 9 我想绘制一个
  • 将向量(或弧)绘制到玫瑰图上。 MATLAB

    我有两个数据集 其中详细列出了angles 我正在绘制玫瑰图 angles 0 8481065519 0 0367932161 2 6273740453 n 另一个 从这组角度详细说明方向统计 angle error 0 848106563
  • Gnuplot:Logscale 似乎把事情搞砸了

    我放入了对数刻度 它弄乱了网格线的绘制 主要 x 网格线不再与主要 y 网格线具有相同的灰色 它们是次要 x 和 y 网格线的灰色 以下图片显示了这一点 关于如何解决这个问题有什么想法吗 Thanks usr bin env gnuplot
  • matlab 中的动画绘图

    我正在尝试创建一个三角形的动画图 最终结果应该是十个三角形 后面跟着两个更大的三角形 后面跟着一条直线 使用matlab文档 https de mathworks com help matlab ref drawnow html 我最终得到
  • autoplot.microbenchmark 实际绘制了什么?

    根据文档 microbenchmark autoplot 使用 ggplot2 生成更清晰的微基准计时图 凉爽的 让我们尝试一下示例代码 library ggplot2 tm lt microbenchmark rchisq 100 0 r
  • 在r中水平旋转直方图

    谁能帮我如何在 r 中将直方图旋转 90 度 我知道箱线图中有一个选项 horiz T 但我不知道直方图是否有类似的选项 我认为你必须使用 hist 和 barplot 来完成它 如下所示 直接来自文档 你可以在这里检查它 layout x

随机推荐