pgfplots:一个数据集有两个轴,例如°C 和°F

pgfplots:一个数据集有两个轴,例如°C 和°F

我想在 pgfplots 中绘制一个数据集,并使用两个轴,每个轴上的单位不同。例如,我有一个包含温度的数据集,我想在左侧打印 °C 刻度,在右侧打印 °F。

快速绘画示例 :-)

谢谢 :-)

我还没有用谷歌找到答案:-(

附言:这是一个非常棒的平台,对我帮助很大 - 感谢这边所有其他的回答 :-)

这是我目前的带有左轴的代码:

\documentclass[a4paper,10pt]{article}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
    xmin=0, xmax=100, %- show range
    ymin=345.95, ymax=346.17, %- show range
    domain=0:100, %- calc range
    ytick={346.16,346.11,...,340}, %- labels on the left side
    y tick label style={
      /pgf/number format/.cd,
        fixed,
        fixed zerofill,
        precision=2,
      /tikz/.cd
    },      
    samples=200,
    no markers,
    enlargelimits=false,
    xlabel={x-axis},
    ylabel={Temperature T[K]},  
]
\addplot gnuplot { (346.16 - 0.002 * x)} ; 
\addplot gnuplot [style=densely dotted] { 346.16 }
node[below left] at (axis cs:100,346.16) {$73^\circ$C};   


\end{axis}\end{tikzpicture}

\end{document}

答案1

这是一个简单的例子,尽管我使用的是华氏度而不是开尔文。

\documentclass{article}
\usepackage{pgfplots,siunitx}
\pgfplotsset{compat=1.8}

\pgfplotstableread{
x celc
0 346.16
20 346.11
40 346.06
60 346.01
80 345.96
}\mytable


\begin{document}
\begin{tikzpicture}
    \begin{axis}[ylabel={\si{\degreeCelsius}}]
    \addplot[draw=none,no marks] table \mytable;
    \end{axis}
    \begin{axis}[
    axis y line*=right,
    ylabel={\si{\degree F}},
    yticklabel={\pgfmathparse{9*\tick/5+32}\pgfmathprintnumber[fixed,precision=2]\pgfmathresult},
    axis x line=none,
    ]
    \addplot table \mytable;
    \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容