我正在尝试将绘图的 x 坐标乘以某个因子。
pgfplots 手册第 4.3.4 节和此主题解释如何使用带有数据表的数学表达式/pgfplots/table/x expr={expression}
。
我的数据以坐标列表的形式提供给 pgfplots,有没有办法以这种方式使用它,或者我应该将我的数据切换到表格?
编辑:这是我的代码
\begin{tikzpicture}
\tikzstyle{every node}=[font=\scriptsize]
\begin{axis}[
ybar=5pt,
enlarge x limits=0.15,
legend pos=north east,
legend style={legend columns=1},
ylabel={Number of fruits daily eaten},
symbolic x coords={1,2,3,4,5},
bar width=5pt,
ymin=1,
ymax=20,
xticklabels={orange,apple,banana,strawberry,tomato},
error bars/.cd,
yminorgrids=true,
ymajorgrids=true,
nodes near coords,
every node near coord/.append style={rotate=90, anchor=west},
scaled ticks=base 10:0, %insane
]
\addplot+[fill, text=black, error bars/.cd, y dir=both, y explicit]
coordinates {
(1,1450)% +- (121,230)
(2,1478)% +- (4,7)
(3,1494)% +- (18,27)
(4,1476)% +- (18,27)
(5,1494)% +- (18,27)
};
\addplot+[fill, text=black, error bars/.cd, y dir=both, y explicit]
coordinates {
(1,446)% +- (20,32)
(2,1747)% +- (4,7)
(3,2327)% +- (2,4)
(4,2497)% +- (18,27)
(5,2988)% +- (18,27)
};
\addplot+[fill, text=black, error bars/.cd, y dir=both, y explicit]
coordinates {
(1,1293)% +- (14,16)
(2,4740)% +- (4,7)
(3,12252)% +- (4,7)
(4,16091)% +- (18,27)
(5,20115)% +- (18,27)
};
\legend{Robert, Gertrude, Roger}
\end{axis}
\end{tikzpicture}
答案1
来自有关坐标列表的手册
仅当您的图表较短并且想要为每个相关坐标提供数学表达式时才应使用此输入格式。使用表格格式和 ,任何数据图通常都更容易处理
\addplot table
。
但是如果你真的必须这样做,你必须手动为轴环境中的所有图提供坐标变换,因此它并不理想,因为需要设置轴:在这里我伪造了一个带有平方输入的线性图
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis x line=bottom,
axis y line=left,
ultra thick,
y coord trafo/.code={\pgfmathparse{sqrt(#1)}},
y coord inv trafo/.code={\pgfmathparse{pow(#1,2)}}
]
\addplot coordinates {(0,0)(1,1)(2,4)(3,9)(4,16)(5,25)};
\end{axis}
\end{tikzpicture}
\end{document}
有关这些转换的更多信息,请参阅第 4.22 节