我想在 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}