Линии ярлыков в сюжете

Я рисую две строки, используя

plot(x, y, type = "l", color = "red")

и

points(x2, y2, type = "l", color = "blue")

Я хочу добавить метку рядом с каждой строкой (вместо легенды). Я уверен, что можно использовать пакет в http://directlabels.r-forge.r-project.org/.

Тем не менее, я не нахожу простой способ сделать это.

Ответ 1

Вы можете использовать locator() внутри text() по методу точки и щелчка.

y <- rnorm(100, 10)
y2 <- rnorm(100, 20)
x <- 1:100

plot(x, y, type = "n", ylim = c(0, 40), xlim = c(0, 120))
lines(x, y)
lines(x, y2, col = "red")
text(locator(), labels = c("red line", "black line)"))

alt text

Ответ 2

Вместо использования locator() вы также можете просто сделать координаты меток функцией ваших данных. Например, копирование на римской демо:

text(x=rep(max(x)+3, 2), y=c(mean(y), mean(y2)), pos=4, labels=c('black line', 'red line'))

Ответ 3

Чтобы использовать directlabels, вы должны структурировать свои данные в data.frame, а затем использовать высокоуровневую систему построения, такую ​​как ggplot2, или в следующем примере: решетка:

y <- rnorm(100, 10)
y2 <- rnorm(100, 20)
x <- 1:100
treatment <- rep(c("one group","another"),each=length(x))
df <- data.frame(x=c(x,x),y=c(y,y2),treatment)
library(lattice)
p <- xyplot(y~x,df,groups=treatment,type="l")
if(!require(directlabels)){
  install.packages("directlabels")
  library(directlabels)
}
print(direct.label(p))
print(direct.label(update(p,xlim=c(0,120)),last.points))

Ответ 4

locator() - интерактивный метод получения координат, нажимая на существующий граф.

Ниже приведены инструкции по использованию locator() для нахождения правильных координат для метки на графике.

Шаг 1: Настройте график:

plot(1:100)

Шаг 2: Введите в консоль следующее:

coords <- locator()

Шаг 3: Нажмите один раз на графике, затем нажмите Stop .. Stop Locator в левом верхнем углу графика (это возвращает управление обратно в консоль R).

Шаг 4: Найдите возвращаемые координаты:

coords
$x
[1] 30.26407
$y
[1] 81.66773

Шаг 5: Теперь вы можете добавить метку к существующему сюжету, используя эти координаты:

text(x=30.26407, y=81.66773,label="This label appears where I clicked")

или

text(x=coords$x, y=coords$y,label="This label appears where I clicked")

Вот результат:

enter image description here

Вы заметите, что ярлык отображается с центром, где вы нажали. Лучше, если метка появится с ее первым символом, где вы нажали. Чтобы найти правильный параметр, см. Справку text и добавьте параметр pos=4:

text(x=30,y=80,pos=4,label = "hello")

Примечания:

  • Метка появляется в тех же координатах x, y, что и точки на графике. Итак, x = 100, y = 0 появится в в нижнем правом, а x = 0, y = 100 появится на верхний левый.
  • Можно также использовать legend() для построения метки (это рисует прямоугольник вокруг метки, который часто выглядит лучше).
  • См. Как изменить семейство шрифтов в легенде на R-графике? о том, как изменить шрифт в легенде и как автоматически разместить легенду в верхнем правом углу графика.
  • Я бы рекомендовал ознакомиться с ggplot2 вместо графика, так как ggplot2 является золотым стандартом для создания графиков.

Ответ 5

Посмотрите на функцию labcurve в пакете Hmisc.