добавить метки данных в стрип-чарт - PullRequest
0 голосов
/ 23 марта 2020

Я сделал стрипчарт с порогом, отмеченным красным. Я хотел бы отметить точку, которая падает слева от порога, но, похоже, не может заставить работать функцию «текст» вообще.

снимок экрана с полоской

Вот код полосовой диаграммы: stripchart(ctrls$`Staining Green`, method="jitter", pch=4, xlab='Staining Green', cex.lab=2) abline(v=5,col=2,lty=3)

Сначала я попытался отфильтровать только те образцы ниже порогового значения: Staining.Green <- filter(QCcontrols, Staining.Green < 5), затем добавил текст с помощью text(Staining.Green$`Staining Green` + 0.1, 1.1, labels = Staining.Green$Sample_Name, cex = 2) Это не добавило никакого текста на диаграмму .

Затем я попытался обозначить все точки, на случай, если я слишком усложнил, с вариациями: text(ctrls$`Staining Green` + 0.1, 1.1, labels = ctrls$Sample_Name) Снова, без добавления текста и без сообщения об ошибке.

Любые предложения с благодарностью!

Обновление: мой объект ctrls более сложен, чем я предполагал - возможно, это сбивает меня с толку:

List of 17
 $ Restoration                 : num [1:504] 0.0799 0.089 0.1015 0.1096 0.1092 ...
  ..- attr(*, "threshold")= num 0
 $ Staining Green              : num [1:504] 25.1 23.5 21.1 19.7 22.3 ...
  ..- attr(*, "threshold")= num 5
 $ Staining Red                : num [1:504] 39.8 40.9 36.9 33.2 33.2 ...
  ..- attr(*, "threshold")= num 5.......```

1 Ответ

0 голосов
/ 23 марта 2020

Вот один пример использования встроенного набора данных для airquality:

stripchart(airquality$Ozone,
           main="Mean ozone in parts per billion at Roosevelt Island",
           xlab="Parts Per Billion",
           ylab="Ozone",
           method="jitter",
           col="orange",
           pch=4
)

abline(v = 5, col = 2, lty = 3)

with(subset(airquality, Ozone < 5), text(Ozone, 1.1, labels = Ozone))

График

example stripchart with text labels

Данные

Самые низкие значения Ozone:

head(sort(airquality$Ozone), 5)
[1] 1 4 6 7 7

Редактировать :

Вот краткая демонстрация со списком со схожей структурой:

vec1 <- c(0.0799, 0.089, 0.1015, 0.1096, 0.1092)
attr(vec1, 'threshold') <- 4

vec2 <- c(25.1, 3, 21.1, 19.7, 22.3)
attr(vec2, 'threshold') <- 5

ctrls <- list(Restoration = vec1, `Staining Green` = vec2)

stripchart(ctrls$`Staining Green`, 
           method="jitter", 
           pch=4, 
           xlab='Staining Green', 
           cex.lab=2
)

abline(v=5,col=2,lty=3)

text(ctrls$`Staining Green`[ctrls$`Staining Green` < 5], 1.1, labels = ctrls$`Staining Green`[ctrls$`Staining Green` < 5])

Примечание. Вместо явного включения 5 для порога вы можете заменить threshold из атрибута списка:

attr(ctrls$`Staining Green`, "threshold")
[1] 5

Участок

stripchart

...