如何改进 Gnuplot 中渐变和填充元素的渲染?

2023-11-25

我注意到 Gnuplot 在处理填充元素时会产生丑陋的伪影。

下图的调色板中有一个实例:

palette

另一个例子是当使用filledcurves从 ASCII 文件中的点定义的两条曲线之间。在这种情况下,您可以看到,该区域并不是线条之间真正的实心填充,而是填充了许多条带,只有在缩放相当多后才变得明显,但这在将图像光栅化为 png 或相似的:

strips

这似乎与终端无关。我努力了postscrip, pdfcairo乃至tikz。有什么办法可以改善这一点,或者这是 Gnuplot 的硬限制?


不幸的是,当两个填充多边形相互接触时,由于文档查看器中的抗锯齿功能,这是一个伪影。这种情况发生在filledcurves绘图风格,它组成了许多四边形的填充区域,以及pm3d样式(正如您在颜色框中看到的那样,它显示了相同的工件)。也可以看看使用 gnuplot pm3d 和 pdf 输出生成的图像中存在有问题的莫尔图案。具体的演示案例。

有一个解决方法,但是非常麻烦。您必须使用一些脚本生成一个填充的多边形对象,填充它,使用stats要确定范围,请绘制一个空图(参见例如Gnuplot - 如何获得没有意义的图形? (我只想有轴、标题以及 x 和 y 标签)).

我假设您有一个包含三列的数据文件,并且您将使用以下命令绘制它们

plot 'test.dat' using 1:2:3 with filledcurves

使用以下非常粗略的 python 脚本

from __future__ import print_function
from numpy import loadtxt
import sys

M = loadtxt(sys.argv[1])
print('set object 1 polygon ', end='')
for i in range(0,len(M)):
    if (i == 0):
        print('from {0},{1} '.format(M[i][0], M[i][1]), end='')
    else:
        print('to {0},{1} '.format(M[i][0], M[i][1]), end='')
for i in range(len(M)-1,-1,-1):
    print('to {0},{1} '.format(M[i][0], M[i][2]), end='')

您可以使用以下命令绘制填充曲线

# determine the autoscaling ranges
set terminal push
set terminal unknown
plot 'test.dat' using 1:2, '' using 1:3
set terminal pop

set xrange [GPVAL_X_MIN:GPVAL_X_MAX]
set yrange [GPVAL_Y_MIN:GPVAL_Y_MAX]
eval(system('python script.py test.dat'))
set object 1 polygon fillstyle solid noborder fillcolor rgb 'red'
plot NaN notitle

这还没有涵盖锯齿状颜色框的问题:(

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

如何改进 Gnuplot 中渐变和填充元素的渲染? 的相关文章

  • 无法在 osx 优胜美地上制作枪图。未定义的符号

    我尝试在 os x yosemite 10 10 4 下制作 gnuplot 5 0 0 但出现错误 make Applications Xcode app Contents Developer usr bin make all recur
  • Julia 中的并行梯度计算

    不久前我被说服放弃我舒适的 matlab 编程并开始使用 Julia 编程 我已经在神经网络方面工作了很长时间 我认为现在有了 Julia 我可以通过并行计算梯度来更快地完成工作 不需要一次性对整个数据集计算梯度 相反 我们可以拆分计算 例
  • gnuplot:图例隐藏在数据后面

    我是 gnuplot 的新手 在绘制堆积直方图时 我发现图例隐藏在数据后面 有没有办法将图例放在数据上方 非常感谢你的帮助 编辑 我目前正在使用设置键外部底部将图例放置在外部 但这不是我想要的最佳解决方案 最近的版本允许将图例的背景设为白色
  • Gnuplot multiplot:创建更复杂布局的便捷方法

    我想放置几块地块gnuplot http www gnuplot info通过以下方式 plot1 plot2 plot3 plot4 plot5
  • GNUPLOT:点图,数据取决于点大小

    我正在尝试绘制由 3 个坐标组成的数据集 X 坐标 x 坐标和出现次数 例子 1 2 10 3 1 2 3 2 1 我想在 x y 处为每条线画一个点 其直径取决于第三个值 Gnuplot 可以做到这一点吗 创建具有可变点大小的二维图 看t
  • 使用R中的geom_smooth()在ggplot2图例中混合填充颜色

    使用绘制两条回归曲线时geom smooth in ggplot2 为了fill颜色 图例选择置信区间相交的颜色 我确实认为当重叠区域按比例大于另一个区域时就会出现这种行为 但是我发现这是非常不受欢迎的 因为读者能够推断出 变暗 区域是 C
  • 字段集中 HTML5 图例的 CSS3

    您能否建议 CSS 获得如下引用的效果 使用 CSS3 渐变和边框 当前 HTML 版本如下 section style margin 10px fieldset style padding 5px min height 150px leg
  • Gnuplot - 使用带有 png 终端的 replot

    我正在尝试在 Gnuplot 中使用带有 png 终端的 replot 如果我执行以下操作 我会在一张图表上绘制两个图 没有任何问题 plot sin x x replot sin x 现在 如果对 png 终端类型执行相同操作 则生成的
  • Gnuplot脚本创建后消失

    我有一个 gnuplot 脚本 我的系统是ubuntu 14 04 当我在终端输入gnuplot myPlot 剧情将会消失 它不会保留在屏幕上 我在这个堆栈中看到了类似的question https stackoverflow com q
  • gnuplot任意标注x轴

    我有以下 gnuplot 数据文件 1 0 5 0 9 2 0 1 0 5 3 0 7 0 4 其中第一列是 x 轴 第 2 3 列是两个不同的图表 x 轴坐标始终为自然数 它们代表单词在句子中的位置 第 2 列和第 3 列只是对句子中单词
  • 如何组合两个css3渐变?

    我有两个用于 HTML BODY 背景的 CSS 我使用这个 css 作为我页面的背景 我想将这两个重叠并获得组合效果 IE10 Consumer Preview background image ms linear gradient to
  • 用渐变色绘制一个 D3 圆

    如何用渐变颜色画一个圆 比如说 从黄色到蓝色的渐变 通常 要创建黄色圆圈 我们可以使用以下代码 var cdata 50 40 var xscale 40 var xspace 50 var yscale 70 var svg d3 sel
  • 用顶点之间的渐变填充 matplotlib 多边形

    我正在使用 matplotlib 的 Poly3DCollection 绘制多边形 三角形 的集合 三角形位于具有与其关联的颜色的顶点之间 我目前正在用通过平均三个顶点的颜色确定的纯色填充每个三角形 绘制三角形以形成 3D 表面网格 I w
  • 如何使用 Gnuplot 在一个图中绘制代表数据集中多个子集行的多个图表?

    我有一个数据集 其名称为 output txt 格式如下 1 2 4 6 7 10 1 2 5 6 7 1 3 4 6 7 10 2 4 6 7
  • “-webkit-text-fill-color”和“颜色”之间的区别?

    我试图理解之间的区别 webkit text fill color只是简单地color 功能上有什么区别吗 据我所知 它们是完全相同的 有什么事情你可以用其中一个来做 而另一个却不能做吗 来自WebKit 博客 http www webki
  • 如何在android中使用进度条填充图像

    我正在做一个项目 它需要填充图像 意味着我想使用图像形状作为进度条 我不知道如何使用自定义进度栏 这是一个图像及其图像按钮 这是进度为 100 时的情况 这是 0 进度 您需要了解可绘制资源 可绘制资源 安卓开发者 https develo
  • gnuplot 中的 output.png 不如提示 shell 中的图好

    我经常绘制图表gnuplot提示 shell 如下所示 gunuplot gt plot sin x with linespoints pointtype 3 出现的数字很棒 今天 我将图表保存在 png文件 像这样 gnuplot gt
  • 如何使用 gnuplot 突出显示绘图区域

    如果有人可以帮助解决这个问题 我将不胜感激 我正在使用 gnuplot 5 0 0 处理雷达 或蜘蛛网 图 所有轴上的比例和范围都是相同的 1 及以上的数字具有特殊含义 我想强调这一点 我正在考虑三件事来提高知名度 只需将 1 处的刻度线
  • 更改 gnuplot 中 tics 之间的实际空间

    x 轴示例 Before 10 20 30 40 After 10 20 30 40 我已经搜索了一段时间 只找到了如何尽可能简单地缩放除抽动之间的大小之外的其他所有内容 我不想改变画布大小 终端大小 抽动大小 抽动数量等 我想拉伸 x 轴
  • 如何在 Gnuplot 中将线条样式设置为多个绘图的默认样式?

    我想使用 gnuplot 创建绘图 所有图中的线宽均应为 3 如果我只对一个地块执行此操作 则可以通过以下方式完成 set style line 1 linewidth 3 有什么办法可以默认全局执行此操作吗 您可以指定 set termi

随机推荐

  • 当 iframe 在 jQuery 中加载完成时,如何触发事件?

    我必须在页面中加载 PDF 理想情况下 我希望有一个正在加载的动画 gif 一旦 PDF 加载完毕 它就会被替换 你有没有尝试过 iFrameId on load function do something once the iframe
  • 将自定义 JSON 序列化器与 firebase 结合使用

    使用DataSnapshot getValue 时是否可以获取JsonObjects或Json格式的字符串 也许我的搜索不够彻底 但我找不到使用自定义序列化器的方法 Update 我还没有时间查看最新 SDK 的文档 但似乎JSON 字段有
  • CLLocationManager.location 为零

    这是我的 locationManager 初始化方法 func initLocationManager seenError false locationFixAchieved false locationManager CLLocation
  • 在 TensorFlow 中重新训练冻结的 *.pb 模型

    如何导入冻结的 protobuf 以使其能够重新训练 我在网上找到的所有方法都需要检查点 有没有办法读取 protobuf 以便将内核和偏差常量转换为变量 Edit 1 这类似于以下问题 如何在图 pb 中重新训练模型 我查看了 DeepS
  • 将自定义属性添加到 Firebase Auth

    我浏览了 Firebase 的文档 似乎找不到向 FIRAuth 添加自定义属性的方法 我正在从 Parse Server 迁移一个应用程序 我知道我可以设置用户的用户名 电子邮件和 objectId 不 我看到我可以选择电子邮件 disp
  • 让 XCUIElement 为 Automate UITest 执行 3D 触摸?

    我正在创建自动化 UI 测试测试用例 我想测试用户与元素进行 3D Touch 交互时的场景 然后向他们显示 Peek 和 Pop 视图 我似乎找不到任何可能的方法来在元素上模拟 3D Touch 并继续 有人对此有任何想法吗 或者 3D
  • 类型错误:尝试将整数保存到文本文件时需要字符缓冲区对象

    我正在尝试做一个very简单的 计数器 应该跟踪我的程序被执行的次数 首先 我有一个仅包含一个字符的文本文件 0 然后我打开该文件 将其解析为int add 1到该值 然后尝试将其返回到文本文件 f open testfile txt r
  • Lua 的 Lint-ing 工具 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我最近开始为 Minecraft 的 mod Computer Craft 编写一些 Lua 我一直沉迷于 javascript 我发现最有用的工具
  • 是否有 Eclipse C# 高亮、代码完成插件

    我需要一个 Eclipse 3 插件来突出显示 C 语法并希望完成代码 我正在运行 Mac 和 Windows 版本的 Eclipse 我已经评估了 改进 C 但它似乎不起作用 看一下Emonic 它是一个 Eclipse 插件 允许您使用
  • java.lang.VerifyError: org/primefaces/behavior/confirm/ConfirmBehaviorHandler 函数返回类型错误

    今天早上 南非时间 Maven 下载了最新的 primefaces jar 版本 5 3 虽然我的项目设置方式是 Maven 将项目部署到我的 Web 容器 在本例中为 Wildfly 9 0 1 Final 但由于以下异常 部署失败 20
  • 如何在不使用分析功能的情况下获得第二高薪水部门?

    假设我们每个部门有 3 名员工 我们总共有 3 个部门 下面是示例源表 Emp deptno salary A 10 1000 B 10 2000 C 10 3000 D 20 7000 E 20 9000 F 20 8000 G 30 1
  • 如何让PdfPTable动态计算列宽

    我想创建一个 PdfPTable 其中包含包含不同长度字符串的列 我了解到 每列的每个单元格 列的宽度都是相同的 默认 或者可以设置每列应占用的空间比例 但是 我希望列的宽度符合要求 但不能更宽 具体取决于插入的数据 假设表格很容易适合页面
  • 如何配置在 AWS/ElasticBeanstalk/Docker 上运行的 GlassFish 实例?

    我正在使用 GlassFish 提供 Java EE Web 应用程序 在我的本地开发机器上一切正常 我有 将 postgres JDBC 库复制到正确的位置 在 Glassfish 管理控制台中配置连接池和 JDBC 资源 部署了一个使用
  • 如何以编程方式关闭 Android 手机?

    我想做一个锁屏应用程序 当手机处于锁定模式时 插入 USB 时会关闭手机 以防止其他用户访问手机数据 有谁知道如何以编程方式关闭 Android 设备 以便其他人在设备处于锁定模式时无法访问数据 这是锁定屏幕活动上的主页按钮的代码 Over
  • 实体框架核心两个对象作为主键

    我有一个用于管理朋友关系的模型 它看起来如下 public class Relationship Required public User User get set Required public User Friend get set R
  • TransactionInactiveError:无法在“IDBObjectStore”上执行“添加”:事务未激活

    在这段代码中我面临的问题是store1 add当我查看控制台时它说TransactionInactiveError Failed to execute add on IDBObjectStore The transaction is not
  • SAS:重新排列数据步骤中的字段顺序

    在 SAS 9 中 如何在简单的数据步骤中重新排列字段的顺序 Data set2 Something probably goes here set set1 run 因此 如果 set1 有以下字段 Name Title Salary A
  • 在“for”循环中访问索引

    如何在使用 a 迭代序列时访问索引for loop xs 8 23 45 for x in xs print item format index x 期望的输出 item 1 8 item 2 23 item 3 45 使用内置函数enum
  • 带有 C 指针的 Pickle Cython 类

    我正在尝试写一个 reduce 包含 C 指针的 cython 类的方法 但迄今为止发现的有关执行此操作的最佳方法的信息很少 有大量关于如何正确编写 reduce 使用 numpy 数组作为成员数据时的方法 我想远离 Numpy 数组 因为
  • 如何改进 Gnuplot 中渐变和填充元素的渲染?

    我注意到 Gnuplot 在处理填充元素时会产生丑陋的伪影 下图的调色板中有一个实例 另一个例子是当使用filledcurves从 ASCII 文件中的点定义的两条曲线之间 在这种情况下 您可以看到 该区域并不是线条之间真正的实心填充 而是