我对R来说比较新,并且有一个约60个时间点的数据集,其中温度测量值介于0.3到18米之间。目的是创建一个轮廓图,最好用ggplot2反映随时间的高分辨率(x =天,y =深度,z =温度)。 我尝试了几种方法:
ggplot + geom_tile
等高线图
ggplot + stat_contour
filled.contour
但其中一些我没有设法工作而其他人没有获得所需的结果(像素化轮廓或只有线条没有填补空白的可能性)。
数据文件: http://www.filedropper.com/budgetcontourf
示例应如何显示: example
这是我到目前为止所取得的成就: 我无法发布超过2个链接。使用下面的代码无论如何都会显示结果。
期待您的建议或解决方案!非常感谢提前!!
PS:在“导入数据集”期间,可能还有一种更好的方法可以解决R重命名列标题的问题(数字被重命名,例如2到X2)。
# +++ CONTOUR PLOT +++
#load dataset manually
# load packages
library(ggplot2)
#Renames the colums
colnames(budget_contour_F) <- c('depth', '-2', '-1', '0', '1', '2',
'3', '5', '7', '8', '9', '11', '13', '15', '17', '19',
'21', '23', '25', '27', '29', '31', '33', '35', '37', '39',
'41', '43', '45', '47', '49', '51', '53', '55', '57', '59',
'61', '63', '65', '67', '69', '71', '73', '75', '77', '79',
'81', '83', '85', '87', '89', '91', '93', '95', '97', '99',
'101', '103')
#Melt data
CPF <- melt(budget_contour_F, id=c("depth"))
#Renames the colums
colnames(CPF) <- c('depth', 'day', 'temp')
#Contour colour only
ggplot(CPF, aes(x = day, y = depth, z = temp)) +
geom_tile(aes(fill = temp)) +
stat_contour() +
scale_y_reverse(name="depth (m)") +
theme_bw()
#Contour lines only
contourplot(temp ~ day * depth, data = CPF)