我正在对数刻度上绘制一个函数pgfplots
。我只是想知道是否有办法指出我想在哪些点上评估该函数。
具体来说,在我的例子中,我在2
和之间的256
某个刻度上绘制一些东西log2
。因此,我希望在对应于 2 的幂(即2, 4, 8, 16
等)的 x 值处设置标记。
目前,结果按照线性比例分配样本。
\begin{tikzpicture}
%\*
\begin{axis}[
%
xmode=log,
log ticks with fixed point,
log basis x={2},
xmin=2, xmax=256,
xminorticks=true, yminorticks=true,
ytick={0,200,...,800},
xtick = {2,4,8,16,32,64,128,256},
xticklabel style={text width=2em,align=center},
xmajorgrids, xminorgrids,
ymajorgrids, yminorgrids,
]
\addplot [color=black,mark=pentagon*,domain=2:256,samples=10,variable=\R]
(\R, {3*\R + 2});
\end{axis}
%*/
\end{tikzpicture}
当然,我可以考虑在外部程序(例如 Matlab)中计算所需点的函数,然后导出到TikZ
,但我宁愿使用全 TikZ 解决方案,以防我想更改某些内容而不需要通过外部程序。
答案1
您可以使用samples at
密钥,即
\addplot [color=black,mark=pentagon*,samples at={2,4,8,16,32,64,128,256},variable=\R] (\R, {3*\R + 2});
您还可以xtick=data
在axis
选项中说,以避免必须指定两次数字。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
%
xmode=log,
log ticks with fixed point,
log basis x={2},
xmin=2, xmax=256,
xminorticks=true, yminorticks=true,
ytick={0,200,...,800},
xtick = data,
xticklabel style={text width=2em,align=center},
xmajorgrids, xminorgrids,
ymajorgrids, yminorgrids,
]
\addplot [color=black,mark=pentagon*,samples at={2,4,8,16,32,64,128,256},variable=\R] (\R, {3*\R + 2});
\end{axis}
\end{tikzpicture}
\end{document}