Как использовать direct.label () с простой (две переменные) диаграммой ggplot2 - PullRequest
0 голосов
/ 01 мая 2019

Вот простая диаграмма ggplot для двух переменных:

library("ggplot2")
library("directlabels")
library("tibble")

df <- tibble(
  number = 1:10,
  var1 = runif(10)*10,
  var2 = runif(10)*10
)

ggplot(df, aes(number))+
  geom_line(aes(y=var1), color='red')+
  geom_line(aes(y=var2), color='blue')

Можно ли пометить последнее значение var1 и var2, используя такое выражение:

direct.label(df, 'last.points')

В моем случае я получаю сообщение об ошибке:

Error in UseMethod("direct.label") : 
  no applicable method for 'direct.label' applied to an object of 
class

1 Ответ

0 голосов
/ 02 мая 2019

Мария, вам изначально нужно структурировать ваш фрейм данных с помощью "суммирования данных".Мне нравится использовать функцию melt пакета reshape2.Это позволит вам использовать только один geom_line.

. Позже вам потребуется сгенерировать объект из ggplot2.И к этому объекту вы должны применить пакет directlabels.

library(ggplot2)
library(directlabels)
library(tibble)
library(dplyr)
library(reshape2)
set.seed(1)
df <- tibble::tibble(number = 1:10,
                     var1 = runif(10)*10,
                     var2 = runif(10)*10)

df <- df %>% 
  reshape2::melt(id.vars = "number")
p <- ggplot2::ggplot(df) +
  geom_line(aes(x = number, y = value, col = variable), show.legend = F) +
  scale_color_manual(values = c("red", "blue"))
p

enter image description here

directlabels::direct.label(p, 'last.points') 

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...