我有两个数据框,它们分别给出了相同坐标的两个不同时刻的温度。我想将两个数据框绘制在一起,并使用相同的颜色表示两个图之间相同温度的点;也就是说,我想要一个图例来表示两个数据框的温度范围不同的情况。
我认为我可以使用
我认为我可以使用
scale_colour_manual()
,但是我不确定如何在这种情况下实现它(因为我的真实数据有成千上万个观测值)。以下是我目前所拥有的内容的示例:# Create sample data
dat1 <- data.frame(c(-158.28, -158.27, -158.26),
c(21.57, 21.56, 21.57), c(24, 22, 25))
names(dat1) <- c('x', 'y', 'Temp.')
dat2 <- data.frame(c(-158.28, -158.27, -158.26),
c(21.57, 21.56, 21.57), c(22, 20, 23))
names(dat2) <- c('x', 'y', 'Temp.')
# Create plots
plot1 <- ggplot(dat1, aes(x,y)) + geom_point(aes(color = Temp.)) +
scale_colour_gradientn(colours = rev(rainbow(4))) +
theme(
title = element_text('January 1, 1990 at 00:00'),
legend.position = 'none') +
ggtitle('Jan. 1, 1990 00:00')
plot2 <- ggplot(dat2, aes(x,y)) + geom_point(aes(color = Temp.)) +
scale_colour_gradientn(colours = rev(rainbow(4))) + theme(
title = element_text('August 18, 2007 at 02:00'),
legend.position = 'none') +
ggtitle('Aug. 18, 2007 14:00')
# Combine plots
grid.arrange(plot1, plot2, ncol = 2, nrow = 1, respect = T)
我想改变颜色比例尺,使其相对于两个图形的组合温度而不是各自的温度。 这段代码不能工作,但它展示了我想要做什么:
scale_colour_gradientn(colours = rev(rainbow(4,
start = min(c(dat1$Temp.,dat2$Temp.)),
end = max(c(dat1$Temp.,dat2$Temp.)))))