Отображение графического представления Python в HTML-документе RMarkdown - PullRequest
0 голосов
/ 05 мая 2018

Почему пакетный пакет python не может отображать фигуры в RMarkdown, а matplotlib может? Например:

 ```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
```

```{r}
library(plotly)
subplot(
     plot_ly(mpg, x = ~cty, y = ~hwy, name = 'default'),
     plot_ly(mpg, x = ~cty, y = ~hwy) %>%
         add_markers(alpha = 0.2, name = 'alpha'),
     plot_ly(mpg, x = ~cty, y = ~hwy) %>%
         add_markers(symbols = I(1), name = 'hollow')
 )
```

```{python}
import plotly
import plotly.plotly as py
import plotly.graph_objs as go
import numpy as np

plotly.tools.set_credentials_file(username='xxx', api_key='xxx')

N = 500
trace0 = go.Scatter(x = np.random.randn(N), y = np.random.randn(N) + 2, name = "Above", mode = "markers",
marker = dict(size = 10, color = "rgba(152, 0, 0, .8)", line = dict(width = 2, color = "rgb(0,0,0)")))

trace1 = go.Scatter(x = np.random.randn(N), y = np.random.randn(N) - 2, name = "below", mode = "markers",
marker = dict(size = 10, color = "rgba(255, 182, 193, .9)", line = dict(width = 2, color = "rgb(0,0,0)")))

data = [trace0, trace1]
layout = dict(title = "Styled Scatter", yaxis = dict(zeroline = False), xaxis = dict(zeroline=False))
fig = dict(data = data, layout = layout)
py.iplot(fig, filename = "styled-scatter")
```

Код R может работать хорошо, но код Python не может отображать цифру, что не так с кодом?

1 Ответ

0 голосов
/ 06 мая 2018

Вот что я сделал:

  1. используется в автономном режиме:
    • заменить import plotly.plotly as py на import plotly.offline as py
    • нет необходимости устанавливать имя пользователя и ключ API в автономном режиме.
  2. используется py.plot(fig, filename = "styled-scatter.html", auto_open=False):
    • py.iplot() для ноутбуков Jupyter (встраивает сюжет прямо в блокнот)
    • auto_open = False аргумент состоит в том, чтобы избежать появления всплывающего сюжета.
  3. встроил HTML-график в Rmarkdown с помощью следующего:

    ```{r, echo=FALSE}
    htmltools::includeHTML("styled-scatter.html")
    ```
    

    и вот результат: enter image description here

...