在 Octave 中为 Gnuplot 启用“线条样式”功能?

Posted

技术标签:

【中文标题】在 Octave 中为 Gnuplot 启用“线条样式”功能?【英文标题】:Enable "linestyle" functionality for Gnuplot in Octave? 【发布时间】:2016-09-08 13:13:08 【问题描述】:

在 Octave 中,fltk 和 qt 中的希腊字母不打印,只有 gnuplot 作为 graphics_toolkit。但是使用 gnuplot 所有的线都是实线,没有虚线。 我发现一个页面说可以启用其他线条样式:

http://wiki.octave.org/Enable_%22linestyle%22_functionality_for_Gnuplot%27s_x11_terminal

我将那里的行添加到我的 ~/.Xdefaults 并按照那里所说的 xrdb -merge .Xdefaults 做了, 但没有成功。

我在 Ubuntu 16.04 上运行 octave 4.0.2。

有什么提示吗?

谢谢

卡尔

【问题讨论】:

顺便说一句,4.2 版本将能够打印希腊字母。如果您想使用 Latex 将您的印刷品包含在科学论文中,我建议使用 epslatex 或 psfrag,例如,请参阅 wiki.octave.org/Printing_with_FLTK。 【参考方案1】:

看来你暂时做不到。但是,如果您对解决方法感到满意,那么您最好的选择似乎是创建一个希腊文本的图像并将其用作您的标题等。

这是一种方法。转到codecogs online latex editor 并使用他们的工具以繁琐的数学模式写下您的希腊标题:p 如果您将链接复制到生成的图像,如果您更喜欢保存文件,您可以将其直接使用到imread(这也使得假设您有互联网连接,您的代码是自动的,因此可以在脚本中使用。

例如我使用以下数学 tex 生成希腊标题:

\Pi\acute\alpha\lambda\iota~\sigma\kappa\alpha\tau\acute\alpha~\tau\alpha~\kappa\acute\alpha\nu\alpha\mu\epsilon~\mu\epsilon~\tau\alpha~E\lambda\lambda\eta\nu\iota\kappa\acute\alpha~\rho\epsilon~\mu\alpha\lambda\acute\alpha\kappa\epsilon\varsigma

然后使用生成图像的链接(或本地保存)

>> image  % draw octave logo
>> greektitle = imread('http://latex.codecogs.com/png.latex?%5Cdpi%7B300%7D%20%5Chuge%20%5CPi%5Cacute%5Calpha%5Clambda%5Ciota%7E%5Csigma%5Ckappa%5Calpha%5Ctau%5Cacute%5Calpha%7E%5Ctau%5Calpha%7E%5Ckappa%5Cacute%5Calpha%5Cnu%5Calpha%5Cmu%5Cepsilon%7E%5Cmu%5Cepsilon%7E%5Ctau%5Calpha%7EE%5Clambda%5Clambda%5Ceta%5Cnu%5Ciota%5Ckappa%5Cacute%5Calpha%7E%5Crho%5Cepsilon%7E%5Cmu%5Calpha%5Clambda%5Cacute%5Calpha%5Ckappa%5Cepsilon%5Cvarsigma');
>> greektitle = repmat(greektitle,[1,1,3]); % make rgb so unaffected by colormap
>> axes; imagesc(greektitle); axis equal off; 
>> P=get(gca,'position'); set(gca,'position',[P(1),0.9,P(3),0.1]); % place on top
>> saveas(gcf,'out.png','png')

【讨论】:

以上是关于在 Octave 中为 Gnuplot 启用“线条样式”功能?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Octave 默认使用“gnuplot”而不是“fltk”?

Octave + Gnuplot 倒置渲染图像

Octave-Gnuplot-AquaTerm 错误:设置终端 aqua 增强标题“图 1”...未知终端类型”

Octave 作图 无响应

在不使用十六进制代码的情况下在 gnuplot 中设置线条不透明度

Mac OS安装octave出现的问题-'error:terminal type set to 'unknown'的解决'