指定与内容无关的单独 y 轴限制 - pgfplots

指定与内容无关的单独 y 轴限制 - pgfplots

我想在左侧绘制 y 轴,并与绘图的绘制内容有独立的限制。

我选择 pgfplots 教程作为 MWE:

\begin{tikzpicture}
\begin{axis}[
        axis x line = none,
        axis y line = left]
\addplot [
scatter,
only marks,
point meta=explicit symbolic,
scatter/classes={
a={mark=square*,blue},
b={mark=triangle*,red},
c={mark=o,draw=black}% <-- don't add comma
},
] table [meta=label] {
x y label
0.1 0.15 a
0.45 0.27 c
0.02 0.17 a
0.06 0.1 a
0.9 0.5 b
0.5 0.3 c
0.85 0.52 b
0.12 0.05 a
0.73 0.45 b
0.53 0.25 c
0.76 0.5 b
0.55 0.32 c
};
\end{axis}
\end{tikzpicture}

并使用 PowerPoint 添加所需的 y 轴(蓝色),例如,将其从 0.15 绘制到 0.45,与 pgfplots 生成的当前黑色轴相比:

在此处输入图片描述

我不想调整绘图的界限,因为它与数据非常吻合。我是否必须单独绘制 y 轴,或者是否有办法指定界限?

提前致谢。

答案1

您可以缩短轴线。

\documentclass[tikz,border=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
        axis x line = none,
        axis y line = left,
        ytick={0.2,0.3,0.4},
        axis line style={shorten >=0.8cm,shorten <=1cm}
        ]
\addplot [
scatter,
only marks,
point meta=explicit symbolic,
scatter/classes={
a={mark=square*,blue},
b={mark=triangle*,red},
c={mark=o,draw=black}% <-- don't add comma
},
] table [meta=label] {
x y label
0.1 0.15 a
0.45 0.27 c
0.02 0.17 a
0.06 0.1 a
0.9 0.5 b
0.5 0.3 c
0.85 0.52 b
0.12 0.05 a
0.73 0.45 b
0.53 0.25 c
0.76 0.5 b
0.55 0.32 c
};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容