Pgfplots/TikZ:仅绘制轴的正半部分

Pgfplots/TikZ:仅绘制轴的正半部分

我怎样才能知道pgfplots只显示一个轴的正半部分,同时仍然绘制位于该轴负半部分的数据点?例如,参考此图,

在此处输入图片描述

我想只绘制 x 轴的右侧 (>0),而不改变任何其他内容。到目前为止,我的所有尝试都完全裁剪了图形的左侧。

提前致谢!

编辑:

以下是 MWE 的一个示例:

\documentclass[11pt,onecolumn]{article}
\usepackage{pgfplots}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
    \begin{axis}[%
    axis on top, scale only axis,
    xmin=-22.55, xmax=22.55,
    xlabel={$r/b_0$},
    ymin=0., ymax=54.05,
    ylabel={$z/b_0$},
    axis lines=center,
    xtick=\empty, ytick=\empty,
    ]
    \addplot [forget plot] graphics [xmin=-22.55, xmax=22.55, ymin=0.05, ymax=54.05] {foo.png};
    \end{axis}
\end{tikzpicture}%

\end{document}

我删除了计算黑色轮廓的代码,它太长了。上面的 MWE 导致(抱歉质量不佳):

图 2

尝试axis x line=rightxmin=0导致

在此处输入图片描述

图 4, 分别。

答案1

一种可能性是禁用 x 轴的绘制,然后手动绘制。可能还有其他可行的方法。

代码输出

\documentclass[11pt,onecolumn]{article}
\usepackage{pgfplots} % loads tikz
\begin{document}    
\begin{tikzpicture}
    \begin{axis}[%
    axis on top, scale only axis,
    xmin=-22.55, xmax=22.55,
    xlabel={$r/b_0$},
    ymin=0., ymax=54.05,
    ylabel={$z/b_0$},
    axis lines=center,
    xtick=\empty, ytick=\empty,
    x axis line style={draw=none}, % disable drawing of x-axis
    clip=false % disable clipping
    ]
    % added opacity=0.1 only to make the result clearer
    \addplot [forget plot,opacity=0.1] graphics [xmin=-22.55, xmax=22.55, ymin=0.05, ymax=54.05] {example-image};

    % draw axis line
    \draw [/pgfplots/every inner x axis line, draw=black, line cap=rect] (axis cs:0,0) -- (axis cs:\pgfkeysvalueof{/pgfplots/xmax}, 0);

    \end{axis}
\end{tikzpicture}%

\end{document}

相关内容