The data used here is this leaf photosynthetic traits and N dataset:
Data reference
Dong, Ning, Prentice, Iain Colin, Wright, Ian, Wang, Han, Atkin,Owen, Bloomfield, Keith, Domingues, Tomas, Gleason, Sean, Maire, Vincent, Onoda, Yusuke, Poorter, Hendrik, & Smith, Nicholas. (2022). dataset for paper “Leaf nitrogen from the perspective of optimal plant function” (Version v1) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.6831903
Paper reference
Dong, N., Prentice, I. C., Wright, I. J., Wang, H., Atkin, O. K., Bloomfield, K. J., Domingues, T. F., Gleason, S. M., Maire, V., Onoda, Y., Poorter, H., & Smith, N. G. (2022). Leaf nitrogen from the perspective of optimal plant function. Journal of Ecology, 00, 1– 18. https://doi.org/10.1111/1365-2745.13967
df <- read_csv("~/data/leafn_vcmax_ning_dong/data_leafn_vcmax_ning_dong.csv")
## Rows: 3107 Columns: 33
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (8): Genus Species, Family, woody, DE, Legume, Dataset, Contributor, Re...
## dbl (25): sample_ID, site_id, Latitude, longitude, elv, CO2, fapar, LMA, Nar...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Quick overview of data.
skim(df)
Name | df |
Number of rows | 3107 |
Number of columns | 33 |
_______________________ | |
Column type frequency: | |
character | 8 |
numeric | 25 |
________________________ | |
Group variables | None |
Variable type: character
skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
---|---|---|---|---|---|---|---|
Genus Species | 0 | 1.00 | 4 | 44 | 0 | 2078 | 0 |
Family | 0 | 1.00 | 1 | 18 | 0 | 196 | 0 |
woody | 0 | 1.00 | 5 | 15 | 0 | 3 | 0 |
DE | 46 | 0.99 | 1 | 19 | 0 | 4 | 0 |
Legume | 0 | 1.00 | 2 | 3 | 0 | 2 | 0 |
Dataset | 0 | 1.00 | 2 | 14 | 0 | 15 | 0 |
Contributor | 0 | 1.00 | 3 | 28 | 0 | 55 | 0 |
Reference | 0 | 1.00 | 11 | 34 | 0 | 22 | 0 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
sample_ID | 0 | 1.00 | 1554.00 | 897.06 | 1.00 | 777.50 | 1554.00 | 2330.50 | 3107.00 | ▇▇▇▇▇ |
site_id | 0 | 1.00 | 162.52 | 85.99 | 1.00 | 74.00 | 169.00 | 234.00 | 315.00 | ▅▇▇▇▆ |
Latitude | 0 | 1.00 | 5.81 | 27.07 | -65.60 | -14.99 | 5.16 | 26.25 | 67.50 | ▁▇▅▆▂ |
longitude | 0 | 1.00 | 13.90 | 96.02 | -159.58 | -71.56 | -5.88 | 108.53 | 172.30 | ▁▇▂▂▅ |
elv | 0 | 1.00 | 606.94 | 682.62 | 1.00 | 150.00 | 319.00 | 818.00 | 3379.00 | ▇▂▁▁▁ |
CO2 | 0 | 1.00 | 383.14 | 13.02 | 338.99 | 377.44 | 386.95 | 392.00 | 402.30 | ▁▂▃▇▇ |
fapar | 0 | 1.00 | 0.63 | 0.22 | 0.08 | 0.46 | 0.63 | 0.86 | 0.93 | ▂▂▆▃▇ |
LMA | 6 | 1.00 | 121.76 | 83.48 | 14.24 | 69.04 | 102.46 | 149.43 | 914.86 | ▇▁▁▁▁ |
Narea | 6 | 1.00 | 2.03 | 1.18 | 0.29 | 1.34 | 1.83 | 2.41 | 18.48 | ▇▁▁▁▁ |
Nmass | 6 | 1.00 | 0.02 | 0.01 | 0.00 | 0.01 | 0.02 | 0.02 | 0.08 | ▇▅▁▁▁ |
vcmax25_obs | 3 | 1.00 | 45.72 | 24.99 | 1.06 | 27.62 | 41.13 | 58.80 | 231.77 | ▇▅▁▁▁ |
vcmax_obs | 3 | 1.00 | 36.13 | 25.12 | 0.74 | 17.45 | 31.04 | 48.89 | 205.50 | ▇▃▁▁▁ |
lnD | 0 | 1.00 | -0.68 | 0.66 | -3.62 | -0.99 | -0.59 | -0.28 | 1.10 | ▁▁▃▇▁ |
mgdd0 | 13 | 1.00 | 21.57 | 5.87 | 0.26 | 16.10 | 22.96 | 26.82 | 33.85 | ▁▂▆▇▅ |
lnppfd | 0 | 1.00 | 6.66 | 0.15 | 6.08 | 6.53 | 6.67 | 6.75 | 7.01 | ▁▁▆▇▂ |
lnppfm | 0 | 1.00 | 2.30 | 0.34 | 1.69 | 2.02 | 2.32 | 2.56 | 3.09 | ▆▅▇▆▂ |
alpha | 2 | 1.00 | 0.91 | 0.24 | 0.27 | 0.82 | 0.93 | 1.10 | 1.25 | ▂▂▃▇▇ |
gdday | 0 | 1.00 | 347.13 | 46.43 | 0.00 | 365.00 | 365.00 | 365.00 | 365.00 | ▁▁▁▁▇ |
soil_clay | 2 | 1.00 | 24.87 | 8.59 | 5.00 | 19.00 | 23.00 | 31.00 | 43.00 | ▁▇▅▅▃ |
soil_ph | 2 | 1.00 | 5.78 | 0.88 | 4.30 | 5.10 | 5.40 | 6.30 | 8.20 | ▆▇▆▂▂ |
soil_cn | 2 | 1.00 | 12.29 | 1.99 | 9.00 | 11.00 | 12.00 | 13.00 | 24.00 | ▇▂▁▁▁ |
vcmax_predicted | 0 | 1.00 | 36.90 | 16.92 | 10.14 | 26.54 | 32.34 | 41.40 | 151.00 | ▇▃▁▁▁ |
vcmax25_predicted | 0 | 1.00 | 49.42 | 21.09 | 20.85 | 29.35 | 45.79 | 63.17 | 144.83 | ▇▆▂▁▁ |
lnLMA_predicted | 703 | 0.77 | 4.68 | 0.33 | 3.79 | 4.47 | 4.69 | 4.89 | 5.48 | ▁▃▇▅▂ |
Na_predicted | 703 | 0.77 | 1.98 | 0.47 | 1.36 | 1.62 | 1.90 | 2.23 | 3.69 | ▇▅▂▁▁ |
gg1 <- df %>%
ggplot(aes(vcmax25_obs)) +
geom_density() +
labs(title = "Nmass")
gg2 <- df %>%
ggplot(aes(Narea)) +
geom_density() +
labs(title = "Narea")
gg3 <- df %>%
ggplot(aes(Nmass)) +
geom_density() +
labs(title = "Nmass")
gg4 <- df %>%
ggplot(aes(LMA)) +
geom_density() +
labs(title = "LMA")
(gg1 + gg2) /
(gg3 + gg4)
Log-transform all variables to make them closer to normally distributed.
df <- df %>%
mutate(log_vcmax25_obs = log(vcmax25_obs),
log_Narea = log(Narea),
log_Nmass = log(Nmass),
log_LMA = log(LMA),
)
gg1 <- df %>%
ggplot(aes(log_vcmax25_obs)) +
geom_density() +
labs(title = "Nmass")
gg2 <- df %>%
ggplot(aes(log_Narea)) +
geom_density() +
labs(title = "Narea")
gg3 <- df %>%
ggplot(aes(log_Nmass)) +
geom_density() +
labs(title = "Nmass")
gg4 <- df %>%
ggplot(aes(log_LMA)) +
geom_density() +
labs(title = "LMA")
(gg1 + gg2) /
(gg3 + gg4)
gg1 <- df %>%
ggplot(aes(soil_cn, log_vcmax25_obs)) +
geom_point() +
geom_smooth(color = "red", method = "lm") +
theme_classic()
gg2 <- df %>%
ggplot(aes(soil_cn, log_Narea)) +
geom_point() +
geom_smooth(color = "red", method = "lm") +
theme_classic()
gg3 <- df %>%
ggplot(aes(soil_cn, log_Nmass)) +
geom_point() +
geom_smooth(color = "red", method = "lm") +
theme_classic()
gg4 <- df %>%
ggplot(aes(soil_cn, log_LMA)) +
geom_point() +
geom_smooth(color = "red", method = "lm") +
theme_classic()
gg1 + gg2 + gg3 + gg4
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'
Issues
# -> Ning, please add your analysis as R code here
The data used here is this leaf photosynthetic traits and N dataset:
Data reference
Ellsworth, David; Wright, Ian; Crous, Kristine Y.; Goll, Daniel S; Zaehle, Sönke; Cernusak, Lucas A.; et al. (2022): Convergence in phosphorus constraints to photosynthesis dataset. figshare. Dataset. https://doi.org/10.6084/m9.figshare.20010485.v1
Paper reference
Ellsworth, D.S., Crous, K.Y., De Kauwe, M.G. et al. Convergence in phosphorus constraints to photosynthesis in forests around the world. Nat Commun 13, 5005 (2022). https://doi.org/10.1038/s41467-022-32545-0
df <- read_csv("~/data/leafnp_vcmax_ellsworth/Ellsworth_NCOMMS_Figure1and2_fulldata.csv")
## Rows: 447 Columns: 29
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): Species, Family, Sitename, Continent, Plim_status
## dbl (24): Site_No, Cont_No, Species_No, Vcmax, Jmax, Rd, Vcmax_SE, Jmax_SE, ...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
skim(df)
Name | df |
Number of rows | 447 |
Number of columns | 29 |
_______________________ | |
Column type frequency: | |
character | 5 |
numeric | 24 |
________________________ | |
Group variables | None |
Variable type: character
skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
---|---|---|---|---|---|---|---|
Species | 0 | 1.00 | 4 | 44 | 0 | 402 | 0 |
Family | 7 | 0.98 | 7 | 17 | 0 | 80 | 0 |
Sitename | 0 | 1.00 | 4 | 22 | 0 | 52 | 0 |
Continent | 0 | 1.00 | 4 | 9 | 0 | 4 | 0 |
Plim_status | 0 | 1.00 | 5 | 6 | 0 | 2 | 0 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
Site_No | 0 | 1.00 | 34.37 | 19.12 | 1.00 | 15.00 | 39.00 | 51.00 | 64.00 | ▇▂▅▇▆ |
Cont_No | 0 | 1.00 | 235.55 | 138.52 | 1.00 | 119.50 | 230.00 | 354.50 | 474.00 | ▇▇▇▆▇ |
Species_No | 7 | 0.98 | 44.85 | 22.46 | 1.00 | 27.75 | 45.00 | 59.00 | 87.00 | ▅▆▇▇▆ |
Vcmax | 0 | 1.00 | 47.55 | 18.31 | 10.50 | 34.90 | 44.80 | 58.40 | 112.30 | ▃▇▅▂▁ |
Jmax | 0 | 1.00 | 95.33 | 34.82 | 29.30 | 71.70 | 90.10 | 112.70 | 243.40 | ▃▇▃▁▁ |
Rd | 0 | 1.00 | 0.56 | 0.70 | -1.55 | 0.18 | 0.53 | 0.92 | 3.29 | ▁▆▇▂▁ |
Vcmax_SE | 0 | 1.00 | 3.08 | 2.54 | 0.30 | 1.40 | 2.30 | 3.90 | 17.90 | ▇▂▁▁▁ |
Jmax_SE | 8 | 0.98 | 3.17 | 2.33 | 0.30 | 1.80 | 2.60 | 3.90 | 27.80 | ▇▁▁▁▁ |
Rd_SE | 0 | 1.00 | 0.47 | 0.26 | 0.04 | 0.29 | 0.40 | 0.59 | 1.64 | ▇▇▂▁▁ |
Photo | 0 | 1.00 | 11.02 | 4.19 | 2.40 | 7.90 | 10.60 | 13.45 | 25.00 | ▃▇▅▂▁ |
Tleaf | 0 | 1.00 | 29.67 | 3.00 | 18.70 | 28.10 | 29.90 | 31.15 | 36.80 | ▁▁▇▇▂ |
CO2S | 0 | 1.00 | 384.52 | 8.88 | 350.00 | 381.00 | 386.00 | 390.00 | 404.00 | ▁▁▃▇▂ |
PARi | 0 | 1.00 | 1747.93 | 297.97 | 998.00 | 1702.00 | 1800.00 | 2000.00 | 2001.00 | ▂▁▂▆▇ |
LMA | 0 | 1.00 | 126.05 | 44.58 | 27.45 | 95.81 | 120.70 | 150.93 | 316.77 | ▂▇▃▁▁ |
Perc_N | 0 | 1.00 | 1.83 | 0.65 | 0.54 | 1.38 | 1.76 | 2.17 | 4.28 | ▃▇▃▁▁ |
Perc_P | 0 | 1.00 | 0.10 | 0.06 | 0.01 | 0.06 | 0.09 | 0.13 | 0.44 | ▇▆▁▁▁ |
Narea | 0 | 1.00 | 2.12 | 0.61 | 0.68 | 1.71 | 2.05 | 2.48 | 5.30 | ▂▇▂▁▁ |
Parea | 0 | 1.00 | 0.12 | 0.06 | 0.01 | 0.08 | 0.11 | 0.14 | 0.43 | ▇▇▂▁▁ |
Photomass | 0 | 1.00 | 98.54 | 55.57 | 16.90 | 62.45 | 86.50 | 122.15 | 435.20 | ▇▃▁▁▁ |
Jmaxmass | 0 | 1.00 | 843.02 | 435.97 | 189.70 | 565.00 | 754.40 | 992.75 | 3389.10 | ▇▅▁▁▁ |
Vcmaxmass | 0 | 1.00 | 419.06 | 217.20 | 72.70 | 273.70 | 376.30 | 519.10 | 1643.10 | ▇▆▁▁▁ |
Nmass | 0 | 1.00 | 18.34 | 6.47 | 5.39 | 13.84 | 17.59 | 21.69 | 42.83 | ▃▇▃▁▁ |
Pmass | 0 | 1.00 | 1.02 | 0.57 | 0.08 | 0.60 | 0.94 | 1.28 | 4.40 | ▇▆▁▁▁ |
NPratio | 0 | 1.00 | 21.49 | 11.13 | 2.60 | 14.85 | 19.00 | 24.65 | 119.60 | ▇▂▁▁▁ |
Issues
-> Yunke, please add your analysis code here