计算化学公社

标题: gnuplot如何只改变图例的大小但不改变横纵坐标的大小 [打印本页]

作者
Author:
molly85    时间: 2023-10-25 18:21
标题: gnuplot如何只改变图例的大小但不改变横纵坐标的大小
想问一下熟悉gnuplot的老师们如何只改变下图中wt和mt的大小,但不改变rmsf和residue的大小。
本人尝试用set key font去更改字体和大小,但是会全部转化,无法单拎出来。貌似key也包括横纵坐标。

作者
Author:
sobereva    时间: 2023-10-26 08:15
ps一下,10秒钟的事
作者
Author:
万里云    时间: 2023-10-26 10:59
本帖最后由 万里云 于 2023-10-26 11:15 编辑

调用set key之后再set xlabel/ylabel试试?

曾花了不少时间学gnuplot,有一篇文章的图也全是它画的,但现在改用matplotlib了。虽然gnuplot默认风格比matplotlib好看,画简单的图代码量也更少,但作为一种专门作图的语言,gnuplot语法特性是非常欠缺甚至是非常诡异的。例如要输入angstrom符号,居然要改encoding才行。只有一套共享的全局设置,绘制多个风格不同的子图时要不停reset。一个plot命令包揽大部分功能,绘制散点图或者带权重的能带图要带一堆“w s ps var”或者"lc rgv var"这样的参数。这就导致学习成本很高,学完了又只能拿来画图,非常不划算。这方面gnuplot还不如采用C语法的Asymptote。相比之下,python的语法就完善多了。就算不用面向对象的写法,全部写成函数,代码复用率也比gnuplot高。matplotlib里几乎每一种图都有单独的函数,而且可以顾名思义。更重要的是学了python还可以干别的。

其实gnuplot的困境是大多数DSL(domain specific language)所面临的。单独设计一门语言会让用户少敲一些字符,在“大型机+共享终端”时代有一定意义。但需要另外设计语法和解释器、学习成本高、IDE辅助编程工具匮乏等缺点却一直存在。LaTeX报错提示信息很容易不知所云。CMake逐渐屎山化。数学软件中除了Matlab形成了事实标准外(有兼容的Octave和部分兼容的Scilab),大部分也是各玩各的没有出圈。通用语言+专用库才是正道。

作者
Author:
molly85    时间: 2023-10-27 13:40
万里云 发表于 2023-10-26 10:59
调用set key之后再set xlabel/ylabel试试?

曾花了不少时间学gnuplot,有一篇文章的图也全是它画的,但 ...

深有体会,看来需要学习python




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3