Как отображать картинки ggplot2, RCall и Julia в jupyter?

Я попытался использовать ggplot2 в julia от RCall, как в примере ниже

      using DataFrames
using RCall
df = DataFrame(randn(10,2),:auto)

@rlibrary ggplot2
@rlibrary ggsci
ggplot(df, aes(x=:x1, y=:x2))+geom_point()

Он хорошо работает в REPL, но в блокноте jupyter что-то идет не так, поскольку информация об отладке ниже

      REvalError: Warning in (function (filename = "Rplot%03d.png", width = 480, height = 480,  :
  locale not supported by Xlib: some X ops will operate in C locale
Warning in (function (filename = "Rplot%03d.png", width = 480, height = 480,  :
  X cannot set locale modifiers
Error in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)) : 
  X11 font -adobe-helvetica-%s-%s-*-*-%d-*-*-*-*-*-*-*, face 1 at size 9 could not be loaded
Calls: <Anonymous> ... grid.Call -> <Anonymous> -> descentDetails.text -> grid.Call

Stacktrace:
  [1] handle_eval_stderr(; as_warning::Bool)
    @ RCall ~/.julia/packages/RCall/iMDW2/src/io.jl:162
  [2] rprint(io::IOContext{IOBuffer}, s::Ptr{VecSxp})
    @ RCall ~/.julia/packages/RCall/iMDW2/src/io.jl:36
  [3] rprint
    @ ~/.julia/packages/RCall/iMDW2/src/io.jl:46 [inlined]
  [4] show
    @ ~/.julia/packages/RCall/iMDW2/src/io.jl:52 [inlined]
  [5] show
    @ ./multimedia.jl:47 [inlined]
  [6] limitstringmime(mime::MIME{Symbol("text/plain")}, x::RObject{VecSxp})
    @ IJulia ~/.julia/packages/IJulia/e8kqU/src/inline.jl:43
  [7] display_mimestring
    @ ~/.julia/packages/IJulia/e8kqU/src/display.jl:71 [inlined]
  [8] display_dict(x::RObject{VecSxp})
    @ IJulia ~/.julia/packages/IJulia/e8kqU/src/display.jl:102
  [9] #invokelatest#2
    @ ./essentials.jl:708 [inlined]
 [10] invokelatest
    @ ./essentials.jl:706 [inlined]
 [11] execute_request(socket::ZMQ.Socket, msg::IJulia.Msg)
    @ IJulia ~/.julia/packages/IJulia/e8kqU/src/execute_request.jl:112
 [12] #invokelatest#2
    @ ./essentials.jl:708 [inlined]
 [13] invokelatest
    @ ./essentials.jl:706 [inlined]
 [14] eventloop(socket::ZMQ.Socket)
    @ IJulia ~/.julia/packages/IJulia/e8kqU/src/eventloop.jl:8
 [15] (::IJulia.var"#15#18")()
    @ IJulia ./task.jl:411

Я попытался сохранить изображение в формате pdf, png или svg, и только pdf работает хорошо: png и svg вызовут ошибку

      g = ggplot(df, aes(x=:x1, y=:x2))+geom_point()
ggsave(joinpath(odir,"try.png"),g)
      REvalError: Saving 7 x 7 in image
Warning in png_dev(..., res = dpi, units = "in") :
  locale not supported by Xlib: some X ops will operate in C locale
Warning in png_dev(..., res = dpi, units = "in") :
  X cannot set locale modifiers
Error in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)) : 
  X11 font -adobe-helvetica-%s-%s-*-*-%d-*-*-*-*-*-*-*, face 1 at size 9 could not be loaded
Calls: <Anonymous> ... grid.Call -> <Anonymous> -> descentDetails.text -> grid.Call

Итак, что мне делать, чтобы отобразить изображение непосредственно в jupyter, например, python% matplotlib inline?

Спасибо.

0 ответов

Другие вопросы по тегам