Добавление аннотаций к временным рядам с помощью highcharter

#r #highcharts #annotations #r-highcharter

#r #высокие диаграммы #аннотации #r-highcharter

Вопрос:

Я хочу добавить аннотации с помощью Highcharter. Я мог бы сделать это с помощью «классических» точечных диаграмм :

 library(highcharter) df lt;- data.frame(  x = 1:10,  y = 1:10 ) hchart(df,"line", hcaes(x = x, y = y)) %gt;%  hc_annotations(  list(  labels = lapply(1:nrow(df),function(i){  list(point = list(x = df$x[i],y = df$y[i],xAxis = 0,yAxis = 0))  })  )  )  

Проблема в том, что я хотел бы сделать это, когда моя ось X-это дата, и почему-то я не могу заставить ее работать

 df lt;- data.frame(  x = seq(as.Date("2021-01-01"),as.Date("2021-01-10"),by = "days"),  y = 1:10 ) hchart(df,"line", hcaes(x = x, y = y)) %gt;%  hc_annotations(  list(  labels = lapply(1:nrow(df),function(i){  list(point = list(x = df$x[i],y = df$y[i],xAxis = 0,yAxis = 0))  })  )  )  

Ответ №1:

Highcharter любит метку времени, когда вы используете такие даты. Попробуйте использовать datetime_to_timestamp функцию, как показано ниже, и включите text ее в свой список вместе с point .

 library(highcharter)  df lt;- data.frame(  x = seq(as.Date("2021-01-01"),as.Date("2021-01-10"),by = "days"),  y = 1:10 )  hchart(df, "line", hcaes(x = x, y = y)) %gt;%  hc_annotations(  list(  labels = lapply(1:nrow(df),function(i){  list(  point = list(  x = datetime_to_timestamp(df$x[i]),  y = df$y[i],  xAxis = 0,  yAxis = 0  ),  text = as.character(df$y[i])  )  })  )  )