Проблема:
У меня есть фрейм данных под названием FID, и я хочу пометить количество наблюдений для каждого среднего и верхнего и нижнего доверительных интервалов. Поскольку во фрейме данных показано количество наблюдений в месяц за три года (см. Ниже), n-метки помечены как n = 3 (см. Рисунок 1 ниже).
Я создал два вектора с именами наблюдения и month_level, и я надеялся использовать функцию paste0 () для вставки истинных значений n.label в график (см. Код R). Когда я попытался вставить эти значения n-метки на график, сюжетная линия, соединяющая средние значения, имеет тенденцию исчезать, как и сами n-метки (см. Рисунок 2 ниже) вместе с двумя метками оси x в течение нескольких месяцев. (Январь-декабрь) исчезновение (см. Рисунок 3).
Если кто-нибудь сможет помочь разместить правильные значения n.label (см. Истинные значения ниже) на этом графике, я был бы глубоко признателен.
Спасибо заранее.
Ключ:
n.label = логическое значение, указывающее, следует ли добавлять к графику текст, указывающий количество наблюдений в каждой группе.
##Three instances of each month over 3 years
Year Month FID Month FID
2018 January 86 January 208
2019 January 66 February 176
2020 January 56
2018 February 76
2019 February 55
2020 February 45
January (n=3)
February (n=3) etc...............
Правильное количество наблюдений в месяц за три года (см. ниже):
##the correct n.labels are these observations
Month Observations
1 January 113
2 February 94
3 March 111
4 April 111
5 May 33
6 June 9
7 July 14
8 August 89
9 September 86
10 October 83
11 November 81
12 December 101
R-код:
library(gplots)
library(tidyverse)
##Produce a vector showing the true n.label value of observations
Observations<-c(113, 94, 111, 111, 33, 9, 14, 89, 86, 83, 81, 101)
##Create a vector to ensure the dates are in the right order
month_levels = c('January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December')
##Plot means, ci_labels, and n.lables for the column 'FID'
##Open plotting window
dev.new()
##Plot the mean per month for FID but with incorrect n.label values
##Code for figure 1
plotmeans(FID~Month,
data=FID,
ci.label = TRUE,
mean.labels = TRUE,
n.label = TRUE,
digits = 2,
pch=0.3,
col="red",
ccol="black",
barcol="blue",
ylab="Mean Blue Whale Sightings",
xlab="Months")
##Open plotting window
dev.new()
##Code for figure 2
plotmeans(FID~Month,
data=FID,
ci.label = TRUE,
mean.labels = TRUE,
n.label = paste0("month_levels", levels=Observations),
digits = 2,
pch=0.3,
col="red",
ccol="black",
barcol="blue",
ylab="FID",
xlab="Months")
##Plot means for the 'Final_New_Blue'
##Open plotting window
dev.new(width=10, height=10, unit="in")
## Margins area
par(oma=c(3,3,3,3)) # all sides have 3 lines of space
Obs <-c(111, 33, 9, 14, 89, 86, 83, 81, 101, 113, 94, 111)
plotmeans(FID~Month,
data=FID,
ci.label = TRUE,
mean.labels = TRUE,
n.label = FALSE,
digits = 2,
pch=0.3,
col="red",
ccol="black",
barcol="blue",
ylab="FID",
xlab="Months")
axis(1, at=1:12, labels = paste("n =", Obs), pos = -35, col = NA)
Рисунок 1
Рисунок 2
Рисунок 3
Фрейм данных: FID
structure(list(Year = c(2015L, 2015L, 2015L, 2015L, 2015L, 2015L,
2015L, 2015L, 2015L, 2015L, 2015L, 2015L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L), Month = structure(c(5L, 4L, 8L, 1L, 9L,
7L, 6L, 2L, 12L, 11L, 10L, 3L, 5L, 4L, 8L, 1L, 9L, 7L, 6L, 2L,
12L, 11L, 10L, 3L, 5L, 4L, 8L, 1L, 9L, 7L, 6L, 2L, 12L, 11L,
10L, 3L), .Label = c("April", "August", "December", "February",
"January", "July", "June", "March", "May", "November", "October",
"September"), class = "factor"), FID = c(65L, 88L, 43L, 54L,
98L, 0L, 0L, 23L, 10L, 15L, 6L, 33L, 56L, 29L, 98L, 23L, 6L,
10L, 7L, 65L, 53L, 41L, 25L, 30L, 44L, 65L, 38L, 27L, 20L, 0L,
8L, 45L, 34L, 26L, 44L, 39L)), class = "data.frame", row.names = c(NA,
-36L))