#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]) ) }) ) )