gnuplot画图中文标注相关问题

gnuplot是一个基于命令行的开源跨平台画图工具包,画图功能非常丰富。不过最近在考虑如何在gnuplot图中添加中文标注的过程中遇到了一些问题,记录如下。

gnuplot支持多种的输出格式,比如png、svg、eps、pdf。因为论文需要,一般我们要求得到的矢量图的格式,采用eps或者pdf作为输出样式的情况居多。

当直接绘制输出eps格式时,输出的eps文件会自动裁边,将多余的空白去掉(相当于自带gsview里面的automatically calculating bounding box操作)

set terminal postscript eps enhanced color font ‘Helvetica,12‘

但是由于历史原因,eps格式输出对中文的支持很差。而如果输出pdf、svg、png等格式可以比较容易地实现支持中文。比如输出到pdf,可以用pdfcairo作为输出选项。

set term pdfcairo  font "simsun,12"

这种书写格式,其中的字体默认搜索的路径是windows下自带的字体,‘simsum‘是宋体。其中填入的名字是和注册表中以下位置的字体名称对应的。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Fonts

上图中红框中的字体对应华文行楷,那么参数中应该填‘STXingkai‘。

将以下代码保存为test.plt并运行

set encoding utf8
set xlabel "横坐标"
set ylabel "纵坐标"
set term pdfcairo lw 2 font "simsun,8"
set output "test.pdf"
plot sin(x)
set title "正弦函数"
set output

可以看到中文可以正常显示。最后一行的‘set output‘还是尽量保留,因为有些IDE不加这一句会认为画图还没结束,画图的结果就不会写入文件中,就会一直卡住。

注:如果直接在gnuplot的IDE中输入以上代码,可能还是会乱码,估计是gnuplot的IDE不支持中文编码直接录入。

如果原来用eps输出的程序通过size指令对图形进行了放缩,改变输出方式后,排版方式变化了,图形的效果可能会发生较大变化,这个可以通过指定pdf输出的size来解决,输出的size按照原来的比例适当放大,比如原来放缩的比例是

set size 0.7,0.4

输出pdf的时候可以:

set term pdfcairo font size 7,4 "simsun,12"

如果程序输出的图有白边,考虑是不是和我一样是双屏配置导致的,我的单屏幕测试正常。

还有一种折衷的方式是输出还是原来的eps,用inkscape打开,修改对应的英文标注为中文,再保存为eps格式,比较费劲,不太建议这样操作。

参考资料:

http://www.phy.ntnu.edu.tw/demolab/html.php?html=doc/gnuplot-doc/html/pdfcairo

https://www.zhihu.com/question/39053655

http://vision.ouc.edu.cn/~zhenghaiyong/courses/tutorials/gnuplot/gnuplot-zh.pdf

时间: 2024-10-11 21:07:03

gnuplot画图中文标注相关问题的相关文章

如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题

自10.2版本开始,我就一直被ArcGIS Runtime SDK for Android的中文标注无限困扰.无论是驻留于内存中的Graphic 的文本符号TextSymbol,还是新增的离线geodatabase中的中文标注,只要与中文扯上了干系,就无法显示.每次接到用户的电话,我就只能非常官方的仓促应对,文档中明确说明了这一限制啊,确实无能为力:建议您对标注层创建离线缓存吧:您的Android开发经验这么丰富,也可以自行绘制文本来实现:等等等等.其实,自己也觉得Esri的这种疏漏太对不起广大

移动端中文标注显示处理

由于移动端与电脑端的字体不兼容,因此在移动端显示中文标注可能会导致乱码问题 先上一个链接:http://www.cnblogs.com/love540376/p/6434241.html 该连接有如何处理该问题的方法,而下面截图是我对链接中的步骤进行了详细化 1.首先需要在百度下一个SQLiteManager软件,利用这个软件打开已经制作成矢量数据的文件(后缀名为. geodatabase文件) 2.安装以后找到对应路径导入文件,并按一下截图步骤一步步操作 3.点击找到需要修改的ItemInfo

MATLAB 中文论坛相关帖子整理

说明: 本资料所有问题及代码均摘选自matlab中文论坛(www.ilovematlab.cn),主要供自己学习使用. 非常感谢论坛的所有提出以及解答问题的会员. 目   录 1.GUI新手之--教你读懂GUI的M文件... 10 2.GUI程序中改变current directory引起的问题... 15 3.GUI中h0bject和handles 的区别... 16 4.handles结构中句柄和对象的关联问题... 17 5.Matlab利用定时器连续显示图片的问题... 19 5-1.G

gnuplot画图

gnuplot 是一个用于生成趋势图和其他图形的工具.它通常用于收集基于时间的数据,同时也可以使用静态数据. 本文将简单的介绍下gnuplot的基本使用方法,安装教程的话,请自行google(or百度). 首先介绍下gnuplot中的线型(linetype).点型(pointtype).线条宽度(linewidth).点大小(pointsize). 1. 线型(linetype ),主要用于设置线条的颜色,具体如下: 2. 点型(pointtype),主要用于设置点得形状,具体如下: 3. 线条

GNUPLOT画图工具

http://blog.csdn.net/codingkid/article/details/7211492 不得不说这个工具实在是太强大了. 1.首先命令简单,不会有那么多的语法问题. 2.其次画图速度非常快,因为输入数据是文本格式,输出格式如果也是文本就是眨眼功夫感觉不到渲染,当然输出格式非常丰富. 3.还有跨平台性能也很好,linux和windows+X11或windows版的支持的都非常好,工具小巧好用. 4.而且和C可以无缝结合,适合运营和运维人员来统计数据生成图例.   虽然很小,但

gnuplot画图技巧总结

--------------------------------------------------------------------------------------------------------- 本文欢迎转载,转载请附上链接http://blog.csdn.net/iemyxie/article/details/41548583 ----------------------------------------------------------------------------

ubuntu下matplotlib画图中文乱码问题

最近因为论文原因在学习机器学习,看的一本叫做<机器学习实战>的书,看了看还是不错的,因为其中既有原理又有实例.今天载使用matplotlib进行画图时,发现中文会显示为小方块,这个问题真是神烦,折腾了一下午,终于搞定了,下面记录一下我解决的过程. 1. 查看matplotlib支持的中文字体 用python运行以下代码: #! /usr/bin/env python # -*- coding: utf-8 -*- from matplotlib.font_manager import Font

jupyter画图中文显示乱码问题解决办法

下定决心好好修炼一下可视化能力,却发现自己电脑上jupyter notebook画图显示中文字符会显示为小方格,网上查找了好多方法,虽然每位分享者都写着亲测有效,但是叶子姐姐亲测无效,伤心.... 大海捞针式检索各大神方法,终于一不小心成功了,记录一下,以备下一台电脑又出现此问题!!! 1.anaconda加载中文字体库 将C:\Windows\Fonts\SimHei.ttf复制到anaconda安装路径\Lib\site-packages\matplotlib\mpl-data\fonts\

ArcGIS Android SDK 中文标注乱码

Android使用如下代码添加标注: TextSymbol ts = new TextSymbol(12, "名称", Color.RED);Graphic gp = new Graphic(wgspoint, ts);objectLayer.addGraphic(gp); 如出现乱码,需要针对不同机器查看Fonts目录有什么字体文件,比如该机器上有DroidSansFallback.ttf文件,则为ts设置字符集,如下: ts.setFontFamily("DroidSan