pgfplots:如何讓輔助 y 軸刻度標籤成為主 y 軸標籤的函數?

pgfplots:如何讓輔助 y 軸刻度標籤成為主 y 軸標籤的函數?

在這裡,我想新增輔助 y 軸刻度標籤,並使它們成為主 y 軸刻度標籤的函數,而不是手動指定它們。

例如,我需要輔助標籤來遵循此偽函數:

secondary y tick label = primary y tick label * 100

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}

\begin{axis}[
xmin=0,xmax=10,
xtick={0,2,...,10},
xticklabels={
    ,
    x1,
    x2,
    x3,
    x4,
    }
]
\addplot+[
only marks,
error bars/.cd,
y dir=both,
y explicit,
]
table
[
y error plus=ey+,
y error minus=ey-,
]{  
    x       y       ey+     ey-
    2       0       .5      1
    4       0       0       0.5
    6       0       1       0
    8       0       0.5     0.5
};

\end{axis} 
\end{tikzpicture}

\end{document}

在此輸入影像描述

答案1

如果您想在圖表中新增第二個 y 軸,您可以在現有的只有 y 軸的軸上方新增另一個軸。因此第一個有 x 和 y1,第二個只有 y2。更多資訊可以在 pgfplots 手冊的第 4.9 章中找到。

請注意,很可能有更好的方法來實現這一目標,這是我想到的第一個方法。

編輯:

至於將第二個軸標籤作為第一個軸標籤的數學函數:使用兩個變數variemax和variemin呢?然後您可以將它們的值指定為函數,因此您不需要手動執行此操作。

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}

\newcommand{\varymin}{-1.2} 
\newcommand{\varymax}{1.2}

\begin{axis}[
xmin=0,xmax=10,
ymin=\varymin,ymax=\varymax,
xtick={0,2,...,10},
xticklabels={
    ,
    x1,
    x2,
    x3,
    x4,
    }
]
\addplot+[
only marks,
error bars/.cd,
y dir=both,
y explicit,
]
table
[
y error plus=ey+,
y error minus=ey-,
]{  
    x       y       ey+     ey-
    2       0       .5      1
    4       0       0       0.5
    6       0       1       0
    8       0       0.5     0.5
};

\end{axis} 
\begin{axis}[
xmin=0,xmax=10,
ymin=\varymin*100,ymax=\varymax*100,
axis y line*=right,
axis x line=none,
ylabel=Second label]
\end{axis}
\end{tikzpicture}

\end{document}

結果如下:

結果

相關內容