使用 `\addplot` 确定函数的求值点

使用 `\addplot` 确定函数的求值点

我正在对数刻度上绘制一个函数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=dataaxis选项中说,以避免必须指定两次数字。

\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}

在此处输入图片描述

相关内容