![](/img/trans.png)
[英]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.