[英]Add Spearman Correlation Coefficient and RMSE in a plot, and change the plot size
[英]Creating a RMSE and Correlation Coefficent Plot with Values in the Same Column
我的dataframe如下
sos eos dataset site year
171 280 PhenoCam Pheno_alligator 2016
130 275 PhenoCam Pheno_alligator 2017
149 277 PhenoCam Pheno_harvard2 2016
156 259 Landsat Landsat_alligator 2016
157 247 Landsat Landsat_alligator 2017
134 294 Landsat Landsat_harvard2 2016
154 286 MODIS MODIS_alligator 2016
并且数据继续有 1000 多个条目。 共有四个数据集 dataframe site_type ,时间为三年(2016、2017、2018)。 我想在 PhenoCam 与 Landsat 的 ggplot 中绘制散点图,使用它们的 sos 值,但无法弄清楚如何正确设置aes
以获得 PhenoCam sos 作为 y 轴值和 Landsat sos 作为 x 轴值。 此散点图将用于显示 RMSE 和 R,因此,例如,Pheno_alligator 2016 年的 sos 需要 plot 与 Landsat_alligator 2016 年的对比。
我知道通常代码会是这样的
ggplot(site_type, aes(Landsat, PhenoCam)) +
geom_point()
但事实上他们在同一个栏目中发生了很多事情,这让我很失望。 我将总共制作 6 个散点图,(PhenoCam 与 sos 和 eos 的每个数据集对比)但只需要一个指导。 谢谢!
因此,您的值是根据变量“site”(在您的示例中是“alligator”或“harvard2”)名称的末尾和年份配对的。
您可以做的是重塑数据集以获得以下数据:
library(tidyr)
library(dplyr)
df %>% rowwise() %>% mutate(site = unlist(strsplit(site,"_"))[2]) %>%
select(-eos) %>%
pivot_wider(names_from = dataset, values_from = sos)
# A tibble: 3 x 5
site year PhenoCam Landsat MODIS
<chr> <int> <int> <int> <int>
1 alligator 2016 171 156 154
2 alligator 2017 130 157 NA
3 harvard2 2016 149 134 NA
有了这个,你可以通过以下方式轻松获得你的散点图 plot:
library(tidyr)
library(dplyr)
library(ggplot2)
df %>% rowwise() %>% mutate(site = unlist(strsplit(site,"_"))[2]) %>%
select(-eos) %>%
pivot_wider(names_from = dataset, values_from = sos) %>%
ggplot(aes(x= Landsat, y = PhenoCam, color = site))+
geom_point()
它能回答你的问题吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.