R图。 y轴上的摄氏度,第二个y轴上y标签的精确华氏度转换

时间:2015-08-19 09:37:27

标签: r plot

我在y轴上有摄氏度的情节:

plot(y=0:100,x=0:100, main="temperature",xlab="time",ylab="Celsius",type="l")

如何绘制相同的辅助Y刻度,但y轴上的摄氏度显示为第二个y轴上的华氏度。 T(°F)= T(°C)×9/5 + 32 我需要两个y轴的标签位置完全对应,以便次y标签显示主y标签上的转换值。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

在最粗略的形式中,您可以使用axis()

plot(y=0:100,x=0:100, main="temperature",xlab="time",ylab="Centigrate",type="l")

axis(4, at=0:100, labels=0:100 * 9/5 + 32)

使用seq(0, 100, by=10)可以减少标签数量。您还需要设置par(mar=)以适合您的轴标签。

答案 1 :(得分:1)

这是一个在左右两侧都有漂亮刻度的例子。

set.seed(1)
temp <- rnorm(10) * 10 + 10  # random temperatures

par(mar=c(5.1, 5.1, 5.1, 5.1))  # extra margin space
plot(temp, ylab="degrees C")
ylim <- par("yaxp")[1:2]  # get range of original y-axis

# slope and offset coefficients to convert between degrees C and F
slope <- 9/5
offset <- 32
alt.ax <- pretty(slope * ylim + offset)
alt.at <- (alt.ax - offset) / slope

axis(side=4, at=alt.at, labels=alt.ax, srt=90)
mtext("degrees F", side=4, line=par("mgp")[1])

output