Octave 仅打印最后绘制的线段

Posted

技术标签:

【中文标题】Octave 仅打印最后绘制的线段【英文标题】:Octave only prints last line segment plotted 【发布时间】:2017-11-22 10:36:35 【问题描述】:

我在使用 octave 创建绘图文件时遇到问题。执行时

imagesc([1,2,3],[1,2,3],[1,3,1;3,2,3;1,3,1]);
line([0,1,2,3,4],[1.5,1.3,1.7,1.5,1.9]);
print("test.pdf);

位图图像在绘图窗口中正确显示,顶部叠加了一条摆动线。但是 .png 文件只显示来自“imagesc”的图像,加上“line”命令绘制的四个段中的最后一个。打印到 .png 文件时也会发生这种情况。

我在 Windows 10 上使用 octave 4.2.1 和“qt”图形工具包。将工具包更改为“fltk”效果没有任何变化,而转到“gnuplot”会触发一些关于“imagesc”命令的错误消息,我目前不感兴趣。

有人知道如何正确输出文件吗?

【问题讨论】:

这看起来像是 octave (savannah.gnu.org/bugs/…) 中的一个未知错误。我也可以确认 Windows 7。请在 savannah.gnu.org 提交错误报告。 不知道 Windows 上是否也是这种情况(尽管检查您的 octave 发行版使用的 libgl2ps 库很容易),但由于octave 使用的 libgl2ps 库的过时版本。请参阅***.com/q/39746234/4183191 我怀疑这是同一问题的一部分。 Georg W.,感谢您指出 savannah.gnu.org。我在错误报告 #51464 中找到了解决方法。 【参考方案1】:

向线坐标添加第三个维度解决了我的问题。根据 savannah.gnu.org 上的错误报告 #51464 中找到的解决方法,我实施了以下更改:

imagesc([1,2,3],[1,2,3],[1,3,1;3,2,3;1,3,1]);
line([0,1,2,3,4],[1.5,1.3,1.7,1.5,1.9],[4,4,4,4,4]);
zlim ([0 4]);
print("test.pdf");

【讨论】:

以上是关于Octave 仅打印最后绘制的线段的主要内容,如果未能解决你的问题,请参考以下文章

GNU Octave Matlab:绘制刻度标记

Octave没有绘制函数

canvas.drawBitmap 仅绘制最后修改的位图,不绘制中间图

仅打印/绘制 CSV 文件中某些特定站点的特定列

Angular Canvas 仅绘制最后一次迭代

计算机视觉:线段图形和文字图片的绘制