
MWE:
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
group style={
group size=1 by 4,
vertical sep=0.1in,
},
scale only axis,
width=\columnwidth-0.5in-0.09in,
domain=-0.482362:0.035276,
xmin=-0.495, xmax=0.0352762,
]
\nextgroupplot[
height=0.8in,
ymin=-0.9, ymax=4.9,
]
\addplot
gnuplot[id=plot1, raw gnuplot]
{plot '< plotpointreduce -t 0.0175 --max-dist 0.1
--width 2.897 --height 0.8
--xrange \pgfkeysvalueof{/pgfplots/xmin} \pgfkeysvalueof{/pgfplots/xmax}
--yrange \pgfkeysvalueof{/pgfplots/ymin} \pgfkeysvalueof{/pgfplots/ymax}
--x-column delta --y-column v_12 data_fem_0.dat' u 'delta':'v_12'}
;
\end{groupplot}
\end{tikzpicture}
\end{document}
groupplot
및 옵션 에 지정된 축 너비(\columnwidth-0.5in-0.09in) 및 높이(0.8in) 값을 및와 \nextgroupplot
유사한 원시 gnuplot 문자열에 전달하려면 어떻게 해야 합니까 ?--xrange
--yrange
스크립트는 및 plotpointreduce
에 대해 단위 없는 부동 소수점을 예상하며 비율만 고려됩니다.--width
--height
업데이트:
통화를 다음으로 변경했습니다.
\addplot
gnuplot[id=plot1, raw gnuplot]
{plot '< plotpointreduce -t 0.0175 --max-dist 0.1
--width \pgfkeysvalueof{/pgfplots/width}
--height \pgfkeysvalueof{/pgfplots/height}
--xrange \pgfkeysvalueof{/pgfplots/xmin} \pgfkeysvalueof{/pgfplots/xmax}
--yrange \pgfkeysvalueof{/pgfplots/ymin} \pgfkeysvalueof{/pgfplots/ymax}
--x-column delta --y-column v_12 data_fem_0.dat' u 'delta':'v_12'}
;
그러나 \pgfkeysvalueof{/pgfplots/width}
.\columnwidth -0.5in-0.09in
이것을 실제 값으로 어떻게 변환할 수 있나요 inch
?
나는 긴 '집에서 만든' 스크립트 plotpointreduce
를https://gist.github.com/Hotschke/afdcd9efabe385c641a6.
업데이트 II
--width \the\pgfkeysvalueof{/pgfplots/width}
\the
열 너비가 확장됩니다.
내 스크립트가 여전히 불평합니다plotpointreduce: error: argument -w/--width: invalid float value: '345.0pt-0.5in-0.09in'
그래서 제 질문은 단순히 이 표현을 확장하는 것에 관한 것 같아요. 가장 짧은 방법은 무엇입니까?
답변1
추가 인터넷 검색을 통해 알아낼 수 있었습니다. 이것이 가장 신뢰할 수 있는 방법인지는 모르겠습니다.
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usepgfplotslibrary{groupplots}
\makeatletter
\def\Printdimensionless#1{\strip@pt \dimexpr (#1)\relax}
\makeatother
% For convenience
\newcommand{\pwidth}{\Printdimensionless{\pgfkeysvalueof{/pgfplots/width}} } % trailing space important
\newcommand{\pheight}{\Printdimensionless{\pgfkeysvalueof{/pgfplots/height}} }
\newcommand{\pxrange}{\pgfkeysvalueof{/pgfplots/xmin} \pgfkeysvalueof{/pgfplots/xmax} }
\newcommand{\pyrange}{\pgfkeysvalueof{/pgfplots/ymin} \pgfkeysvalueof{/pgfplots/ymax} }
\begin{filecontents}{data_fem_0.dat}
id delta E_1 E_2 v_12 v_21 G_12 err porosity E_cs_1_norm E_cs_2_norm
049 -0.48 2.6891 2.9098 0.33942 0.36728 1.1087 0.010752 0.914955 0.89481 0.968249
047 -0.46 0.014184 0.1251 -0.3269 -2.8832 0.71385 0.0011567 0.88558 0.00343525 0.0302982
\end{filecontents} % inserts '%' comment lines
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
group style={
group size=1 by 2,
vertical sep=0.1in,
},
scale only axis,
width=\columnwidth-0.5in,
domain=-0.482362:0.035276,
xmin=-0.495, xmax=0.0352762,
]
\nextgroupplot[
height=0.8in,
ymin=-0.9, ymax=4.9,
]
\addplot
gnuplot[id=poisson12, raw gnuplot]
{set datafile commentschars '#\%';
\addplot
gnuplot[id=young1, raw gnuplot]
{plot '< plotpointreduce -t 0.0
--width \pwidth --height \pheight
--xrange \pxrange --yrange \pyrange
-x delta -y E_cs_1_norm ./data_fem_0.dat' u 'delta':'v_12'}; 'delta':'v_12'}
;
\nextgroupplot[
height=0.8in,
ytick={0,0.5,1},
ymin=0, ymax=1,
]
\addplot
gnuplot[id=young1, raw gnuplot]
{set datafile commentschars '#\%';
plot '< plotpointreduce -t 0.0
--width \pwidth --height \pheight
--xrange \pxrange --yrange \pyrange
-x delta -y E_cs_1_norm ./data_fem_0.dat' u 'delta':'E_cs_1_norm'};
\end{groupplot}
\end{tikzpicture}
\end{document}
유용한 답변: