![Pgfplot 在小轴范围内崩溃](https://linux22.com/image/432101/Pgfplot%20%E5%9C%A8%E5%B0%8F%E8%BD%B4%E8%8C%83%E5%9B%B4%E5%86%85%E5%B4%A9%E6%BA%83.png)
我有一组如下所示的数据:
并放大平坦部分:
我的目标是制作一个图,tikz
其中pgfplots
有完整的图和一个带有放大版本的附加框。到目前为止,我拥有的是:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{filecontents}{data.dat}
0 0
0.01 0.249847449357731
0.02 0.249877952037423
0.03 0.249893205239232
0.04 0.249900831840137
0.05 0.249908458441041
0.06 0.249916085973041
0.07 0.249919899739041
0.08 0.249923713505041
0.09 0.249931341037041
0.1 0.24993515480304
0.11 0.24993896856904
0.12 0.249942782800645
0.13 0.249944689916447
0.14 0.249946597032249
0.15 0.249950411263853
0.16 0.249952318379655
0.17 0.249954225495458
0.18 0.249958039727062
0.19 0.249959946842864
0.2 0.249961853958666
0.21 0.249963761074468
0.22 0.249965668190271
0.23 0.249967575306073
0.24 0.249969482421875
0.25 0.249971389770508
0.26 0.249972343444824
0.27 0.249973297119141
0.28 0.249975204467773
0.29 0.24997615814209
0.3 0.249977111816406
0.31 0.249979019165039
0.32 0.249979972839355
0.33 0.249980926513672
0.34 0.249981880187988
0.35 0.249982833862305
0.36 0.249983787536621
0.37 0.249984741210938
0.38 0.24998664855957
0.39 0.249987602233887
0.4 0.249988555908203
0.41 0.249990463256836
0.42 0.249991416931152
0.43 0.249992370605469
0.44 0.249994277954102
0.45 0.249995231628418
0.46 0.249996185302734
0.47 0.249997138977051
0.48 0.249998092651367
0.49 0.249999046325684
0.5 0.25
0.51 0.260075434196466
0.52 0.270360733993417
0.53 0.280889953943656
0.54 0.291584624271265
0.55 0.302496654794548
0.56 0.313580528318198
0.57 0.324867235014897
0.58 0.336383334549425
0.59 0.348080789982136
0.6 0.359991028736048
0.61 0.372089580416686
0.62 0.384378660470247
0.63 0.39687587996238
0.64 0.40957069314068
0.65 0.422465424636748
0.66 0.435562510664503
0.67 0.448892864174989
0.68 0.46238035348324
0.69 0.476099779206235
0.7 0.489974572591174
0.71 0.504067866659342
0.72 0.518398450741842
0.73 0.532897961159303
0.74 0.54759708647439
0.75 0.562469482421875
0.76 0.577574541017995
0.77 0.592880730178635
0.78 0.60836734593056
0.79 0.624074199689872
0.8 0.639990197183606
0.81 0.656093809579033
0.82 0.672386099949678
0.83 0.688895329403261
0.84 0.705599166669657
0.85 0.722497797677054
0.86 0.739595626692397
0.87 0.756895015747401
0.88 0.774398326873779
0.89 0.792094073976
0.9 0.809985851656289
0.91 0.828088534377997
0.92 0.846381754570064
0.93 0.864877624048894
0.94 0.883591519494075
0.95 0.902475303343847
0.96 0.921568278647521
0.97 0.940886318493085
0.98 0.960370207671634
0.99 0.980083769414174
1 1
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
height=8cm,
width=10cm,
xmin=0,
xmax=1,
ymin=0,
ymax=1,
axis lines=left]
\addplot[] table [x index=0, y index=1] {data.dat};
\draw[red] (axis cs:0.01,0.24) rectangle (axis cs:0.49,0.26);
\end{axis}
\begin{axis}[
shift={(1.5cm,3.5cm)},
height=4cm,
width=5cm,
xmin=0.02,
xmax=0.49,
ymin=0.245,
ymax=0.25]
\addplot [] table {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}
看起来像这样:
问题是,当我将ymin
和设置ymax
得更接近时,出现以下错误:
Dimension too large. \end{axis}
答案1
您应该使用该restrict y to domain
选项。
以下是 MWE:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{filecontents}{data.dat}
0 0
0.01 0.249847449357731
0.02 0.249877952037423
0.03 0.249893205239232
0.04 0.249900831840137
0.05 0.249908458441041
0.06 0.249916085973041
0.07 0.249919899739041
0.08 0.249923713505041
0.09 0.249931341037041
0.1 0.24993515480304
0.11 0.24993896856904
0.12 0.249942782800645
0.13 0.249944689916447
0.14 0.249946597032249
0.15 0.249950411263853
0.16 0.249952318379655
0.17 0.249954225495458
0.18 0.249958039727062
0.19 0.249959946842864
0.2 0.249961853958666
0.21 0.249963761074468
0.22 0.249965668190271
0.23 0.249967575306073
0.24 0.249969482421875
0.25 0.249971389770508
0.26 0.249972343444824
0.27 0.249973297119141
0.28 0.249975204467773
0.29 0.24997615814209
0.3 0.249977111816406
0.31 0.249979019165039
0.32 0.249979972839355
0.33 0.249980926513672
0.34 0.249981880187988
0.35 0.249982833862305
0.36 0.249983787536621
0.37 0.249984741210938
0.38 0.24998664855957
0.39 0.249987602233887
0.4 0.249988555908203
0.41 0.249990463256836
0.42 0.249991416931152
0.43 0.249992370605469
0.44 0.249994277954102
0.45 0.249995231628418
0.46 0.249996185302734
0.47 0.249997138977051
0.48 0.249998092651367
0.49 0.249999046325684
0.5 0.25
0.51 0.260075434196466
0.52 0.270360733993417
0.53 0.280889953943656
0.54 0.291584624271265
0.55 0.302496654794548
0.56 0.313580528318198
0.57 0.324867235014897
0.58 0.336383334549425
0.59 0.348080789982136
0.6 0.359991028736048
0.61 0.372089580416686
0.62 0.384378660470247
0.63 0.39687587996238
0.64 0.40957069314068
0.65 0.422465424636748
0.66 0.435562510664503
0.67 0.448892864174989
0.68 0.46238035348324
0.69 0.476099779206235
0.7 0.489974572591174
0.71 0.504067866659342
0.72 0.518398450741842
0.73 0.532897961159303
0.74 0.54759708647439
0.75 0.562469482421875
0.76 0.577574541017995
0.77 0.592880730178635
0.78 0.60836734593056
0.79 0.624074199689872
0.8 0.639990197183606
0.81 0.656093809579033
0.82 0.672386099949678
0.83 0.688895329403261
0.84 0.705599166669657
0.85 0.722497797677054
0.86 0.739595626692397
0.87 0.756895015747401
0.88 0.774398326873779
0.89 0.792094073976
0.9 0.809985851656289
0.91 0.828088534377997
0.92 0.846381754570064
0.93 0.864877624048894
0.94 0.883591519494075
0.95 0.902475303343847
0.96 0.921568278647521
0.97 0.940886318493085
0.98 0.960370207671634
0.99 0.980083769414174
1 1
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
height=8cm,
width=10cm,
xmin=0,
xmax=1,
ymin=0,
ymax=1,
axis lines=left]
\addplot[] table [x index=0, y index=1] {data.dat};
\draw[red] (axis cs:0.01,0.24) rectangle (axis cs:0.49,0.26);
\end{axis}
\begin{axis}[
shift={(1.5cm,3cm)},
restrict y to domain=0.245:0.25,
height=4cm,
width=5cm,
]
\addplot [] table {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}