Создаем фейковые данные OHLC

library(xts)
tm <- Sys.time()+1:10000
p1 <- rnorm(10000) |> cumsum() |> xts(tm) |> to.minutes(name = NULL) |> align.time()
df1 <- data.frame(Date=index(p1),coredata(p1))

Рисуем график

library(plotly)
fig <- df1 |> 
  plot_ly(x = ~Date, type="candlestick",
          open = ~Open, close = ~Close,
          high = ~High, low = ~Low,
          line = list(width = 1),
          increasing = list(line = list(color = '#17BECF')),
          decreasing = list(line = list(color = '#7F7F6F')))  |> 
  
  layout(title = "Some chart",
         xaxis = list(rangeslider = list(visible = F),showgrid = FALSE),
         yaxis = list(showgrid = FALSE),
         margin = list(l = 50, r = 0, b = 20, t = 30),
         dragmode = "pan",
         plot_bgcolor = 'black', 
         paper_bgcolor = '#000011', 
         font = list(color = 'gray'), 
         images = list(
           list(
             source = "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/R_logo.svg/1200px-R_logo.svg.png",
             x = 0, y = 1,
             sizex = 1, sizey = 1,
             xref = "paper", yref = "paper",
             opacity = 0.1,
             layer = "below"
           )
         ))
fig