我在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标签上的转换值。
感谢您的帮助。
答案 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])