DataLabels в R highcharter не видны после печати в формате png или jpg - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь распечатать мой график старшей диаграммы.

library(highcharter)
webshot::install_phantomjs()
colors_ <- colorize(1:6, c("#FFA500", "#000000"))
df <- data.frame(y = round(rnorm(5, 10, 2), digits = 1),
                 name = paste0("Name", c(1:5)),
                 color = colors_[1:5])

hc <- highchart() %>%
  hc_chart(type = "column") %>%
  hc_xAxis(categories = df$name) %>%
  hc_add_series(
    df,
    dataLabels = list(
      enabled = T,
      shadow = F,
      color = "black",
      style = list(
        textShadow = F,
        textOutline = F,
        fontWeight = 'normal',
        opacity = 1
      )
    )
  ) 

htmlwidgets::saveWidget(widget = hc, file = "hc.html")
webshot::webshot(url = "hc.html", file = "hc.png", delay = 1, zoom = 4, vheight = 500)

Это диаграмма в программе просмотра html: enter image description here

И это PNG или JPG: enter image description here

Есть ярлыки, но очень прозрачные. Я пробовал разные стили. Безуспешно. Вы можете помочь?

Установленные пакеты (): highcharter, htmlwidgets, webshot ...

1 Ответ

0 голосов
/ 28 апреля 2020

Вместо использования webshot, вы должны попробовать webshot2 на https://github.com/rstudio/webshot2, который не страдает от этой проблемы. Я скопировал ваш сценарий с webshot2, проблема решена, как показано на скриншоте ниже.

Примечание. Перед попыткой установить пакет webshot2 не забудьте удалить websot. Чтобы удалить его, go к пакетам в правом нижнем углу Rstudio, найдите имя пакета и нажмите на смежный значок X, чтобы удалить его, или вы обрабатываете его таким образом из консоли Rstudio:

remove.packages("webshot", lib="~/R/win-library/3.6")

Код

library(highcharter)
library(webshot2)

colors_ <- colorize(1:6, c("#FFA500", "#000000"))
df <- data.frame(y = round(rnorm(5, 10, 2), digits = 1),
                 name = paste0("Name", c(1:5)),
                 color = colors_[1:5])

hc <- highchart() %>%
  hc_chart(type = "column") %>%
  hc_xAxis(categories = df$name) %>%
  hc_add_series(
    df,
    dataLabels = list(
      enabled = T,
      shadow = F,
      color = "black",
      style = list(
        textShadow = F,
        textOutline = F,
        fontWeight = 'normal',
        opacity = 1
      )
    )
  ) 

htmlwidgets::saveWidget(widget = hc, file = "hc.html")
webshot(url = "hc.html", file = "hc.png", delay = 1, zoom = 4, vheight = 500)

Файл png (h c .png)

enter image description here

...