我的数据集范围变化很大。因此,我想缩放数据集以使其适应我的模板,以便网格、轴等与相邻子图相同。
做到这一点最简单的方法是什么?
如上所述,我不想要整个图像的比例。
就像是
\begin{tikzpicture}[scale=4]
\draw[step=0.2cm, very thin,color=black!20] (-0.01,-0.01) grid (2.09,1.19);
\draw[->] (-0,0) -- (2.09,0) node[right] {$t$};
\draw[->] (0,0) -- (0,1.19) node[above] {$y_1$};
\foreach \x in {0,0.2,...,2.1} \node[anchor=north, font=\tiny] at (\x,0) {\num[round-mode=places,round-precision=1,decimalsymbol=comma]{\x}};
\foreach \y in {0,0.2,...,1.1} \node[anchor=east, font=\tiny] at (0,\y) {\num[round-mode=places,round-precision=1,decimalsymbol=comma]{\y}};
\draw[thick] plot file {Grafik/tikz/fr_t.dat} ;
\end{tikzpicture}
我不想缩放整个图片,而只想缩放数据集和 y 轴值。例如
.
.
\foreach \y in {0,2,...,10.1} \node...
\draw[thick] plot file[scaling=0.1] {Grafik/tikz/fr_t.dat} ;
.
.
答案1
由于各种原因,我不使用pgfplots
,但 percusse 注释可能更好。tikz
我唯一的答案是替换:
\draw[thick] plot file {Grafik/tikz/fr_t.dat} ;
经过
\begin{scope}[xscale=0.5,yscale=0.1,xshift=30,yshift=25] % or whatever you want
\draw[thick] plot file {Grafik/tikz/fr_t.dat} ;
\end{scope}
或者更简单,你不需要换班:
\draw[thick,color=blue] plot[y,yscale=0.5,xscale=0.1] file {Grafik/tikz/fr_t.dat} ;
y 轴的处理更加复杂。您必须使用不同的变量。功能齐全的 MWE 是:
\documentclass{standalone}
\usepackage{tikz}
\usepackage[version-1-compatibility]{siunitx}
\begin{document}
\begin{tikzpicture}[scale=4]
\def\myfactor{10}
\draw[step=0.2cm, very thin,color=black!20] (-0.01,-0.01) grid (2.09,1.19);
\draw[->] (-0,0) -- (2.09,0) node[right] {$t$};
\draw[->] (0,0) -- (0,1.19) node[above] {$y_1$};
\foreach \x in {0,0.2,...,2.1} \node[anchor=north, font=\tiny] at (\x,0) {\num[round-mode=places,round-precision=1,decimalsymbol=comma]{\x}};
\foreach \y in {0,0.2,...,1.1} {
\pgfmathsetmacro{\yy}{\myfactor*\y}
\node[anchor=east, font=\tiny] at (0,\y) {\num[round-mode=places,round-precision=1,decimalsymbol=comma] {\yy}};
}
\draw[thick,color=blue] plot[y,yscale=1/\myfactor,xscale=0.1] file {data.txt} ;
\end{tikzpicture}
\end{document}
对于 a ,其data.txt
范围y
从 0 到 10:
当然,您可以为 做同样的事情x
。
待办问题:如何自动获取必须设置宏的值\myfactor
。