将Gnuplot转换为对数刻度图时持续报错的技术求助
对数刻度绘图报错解决
报错信息
C:\Users\netha\Technion\Mahmood Jabareen - Nethanel Benzaquen\Thesis\Chapters\Figures\Chapter04\Chapter04_old\Figa>latex FigPS.tex This is pdfTeX, Version 3.141592653-2.6-1.40.23 (MiKTeX 21.8) entering extended mode (FigPS.tex LaTeX2e <2021-06-01> patch level 1 L3 programming layer <2021-07-12> (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/base\article.cls Document Class: article 2021/02/12 v1.4n Standard LaTeX document class (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/base\size10.clo)) (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/graphics\graphicx.sty (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/graphics\keyval.sty) (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/graphics\graphics.sty (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/graphics\trig.sty) (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/graphics-cfg\graphics.cfg) (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/graphics-def\dvips.def) )) (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/xcolor\xcolor.sty (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/graphics-cfg\color.cfg) ) (labelfig.sty (labelfig.tex)) (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/base\inputenc.sty) (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/l3backend\l3backend-dvips.def) (FigPS.aux) (Pic.tex (C:\Users\netha\AppData\Local\Programs\MiKTeX\tex/latex/base\cp1252.def) <Pic.eps> ! Number too big. -2147483648 l.107 \gplfronttext ? ! Dimension too large. \unitlength l.107 \gplfronttext ? ! Dimension too large. \unitlength l.107 \gplfronttext ? ) [1] (FigPS.aux) ) Output written on FigPS.dvi (1 page, 852 bytes). Transcript written on FigPS.log. C:\Users\netha\Technion\Mahmood Jabareen - Nethanel Benzaquen\Thesis\Chapters\Figures\Chapter04\Chapter04_old\Figa>dvips -o FigPS.ps FigPS.dvi This is dvips(k) 2020.1 (MiKTeX21.8) Copyright 2021 Radical Eye Software ' TeX output 2022.08.05:1116' -> FigPS.ps <C:/Users/netha/AppData/Local/Programs/MiKTeX/dvips/base/tex.pro> <C:/Users/netha/AppData/Local/Programs/MiKTeX/dvips/l3backend/l3backend-dvips.pro> <C:/Users/netha/AppData/Local/Programs/MiKTeX/dvips/base/texps.pro> <C:/Users/netha/AppData/Local/Programs/MiKTeX/dvips/base/special.pro> <C:/Users/netha/AppData/Local/Programs/MiKTeX/dvips/base/color.pro>. <C:/Users/netha/AppData/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/cm/cmr7.pfb> <C:/Users/netha/AppData/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/cm/cmmi8.pfb> <C:/Users/netha/AppData/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/cm/cmr8.pfb> [1<./Pic.eps>] C:\Users\netha\Technion\Mahmood Jabareen - Nethanel Benzaquen\Thesis\Chapters\Figures\Chapter04\Chapter04_old\Figa>ps2epsi FigPS.ps Fig.eps Error: /limitcheck in --arc-- Operand stack: --nostringval-- 2646 2147483428 2646 2147483428 23.625 0 360 Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 2015 1 3 %oparray_pop 2014 1 3 %oparray_pop 1998 1 3 %oparray_pop 1884 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- Dictionary stack: --dict:979/1684(ro)(G)-- --dict:0/20(G)-- --dict:110/200(L)-- --dict:179/300(L)-- --dict:45/200(L)-- --dict:190/256(L)-- Current allocation mode is local Current file position is 86494 Error: /limitcheck in --arc-- Operand stack: --nostringval-- 2646 2147483428 2646 2147483428 23.625 0 360 Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 2015 1 3 %oparray_pop 2014 1 3 %oparray_pop 1998 1 3 %oparray_pop 1884 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push --nostringval-- --nostringval-- Dictionary stack: --dict:982/1684(ro)(G)-- --dict:0/20(G)-- --dict:87/200(L)-- --dict:50/50(L)-- --dict:179/300(L)-- --dict:45/200(L)-- --dict:190/256(L)-- Current allocation mode is local MiKTeX GPL Ghostscript 9.25: Unrecoverable error, exit code 1
原gnuplot代码
set terminal epslatex set output 'Pic.tex' set lmargin 1 set rmargin 1 set bmargin 1 set tmargin 1 set size 0.45,0.50 set pointsize 0.75 set xrange [0.10:+550] set yrange [0.10:1.000] set log x set log y set ytics nolog set xlabel "DOF" #set format x "%4.0f" set xtics border out scale 1,0.5 nomirror #set mxtics 5 set ylabel "Error [\\%]" offset 1.0,0 #set format y "%3.2f" set ytics border out scale 1,0.5 nomirror #set mytics 4 set tics out set key at 500,-2.750 #set grid plot "IGAdisx.txt" using 1:2 title "\\scriptsize{IGA}" with linespoints dashtype 1 linewidth 4.000 pointtype 4 linecolor rgb 'blue',\ "FEAdisx.txt" using 1:2 title "\\scriptsize{FEA}" with linespoints dashtype 1 linewidth 4.000 pointtype 6 linecolor rgb 'red' unset output
数据文件
FEAdisx.txt
42 -13.10825586 130 -3.571865827 266 -1.027164519 450 -0.409075656 682 -0.165172485 962 -0.042107887
IGAdisx.txt
80 -6.514226074 120 -3.369717311 168 -1.761173369 224 -0.97168048 288 -0.551561334 360 -0.310583989 440 -0.162186678 528 -0.065674441 624 0
问题原因
对数刻度无法处理非正数(负数和0的对数无数学意义),你的数据中存在负值和0,导致gnuplot生成的LaTeX代码出现数值溢出,触发Number too big和Dimension too large等错误。
解决方法
- 处理数据符号:误差百分比通常关注绝对值,绘图时取数据的绝对值,将
plot命令中的using 1:2改为using 1:(abs($2)) - 调整y轴范围:原y轴范围
[0.1,1]未覆盖数据绝对值的全部范围(最大值为13.1),修改为[0.01:20]以包含所有数据 - 修正图例位置:原图例位置
500,-2.750在对数y轴下超出可视区域,调整为500,0.02(可根据实际显示微调)
修改后的完整代码
set terminal epslatex set output 'Pic.tex' set lmargin 1 set rmargin 1 set bmargin 1 set tmargin 1 set size 0.45,0.50 set pointsize 0.75 set xrange [0.10:+550] set yrange [0.01:20] # 覆盖所有数据绝对值的范围 set log x set log y set ytics nolog set xlabel "DOF" set xtics border out scale 1,0.5 nomirror set ylabel "Error [\\%]" offset 1.0,0 set ytics border out scale 1,0.5 nomirror set tics out set key at 500,0.02 # 调整图例到可视区域 #set grid plot "IGAdisx.txt" using 1:(abs($2)) title "\\scriptsize{IGA}" with linespoints dashtype 1 linewidth 4.000 pointtype 4 linecolor rgb 'blue',\ "FEAdisx.txt" using 1:(abs($2)) title "\\scriptsize{FEA}" with linespoints dashtype 1 linewidth 4.000 pointtype 6 linecolor rgb 'red' unset output
修改后重新运行gnuplot生成Pic.tex,再编译LaTeX文件即可正常生成图形,避免数值溢出错误。
内容的提问来源于stack exchange,提问作者Nethanel Benzak
相关产品推荐
相关产品推荐

