Постепенное сохранение нескольких графиков в один html (python) - PullRequest
0 голосов
/ 23 января 2020

Я недавно обнаружил заговор и нашел его действительно хорошим для построения графиков, теперь у меня есть проблема, я хочу сохранить несколько графиков в один html, как это сделать, пожалуйста?

* Я хочу сохраните несколько графиков, т.е. рис., рис. 1, рис. 2 и т. д., а НЕ один субплот, в котором есть несколько графиков, потому что я обнаружил, что график внутри субплощадки слишком мал.

Ответы [ 2 ]

1 голос
/ 23 января 2020

В API Plotly есть функция to_html, которая возвращает HTML фигуры. Кроме того, вы можете установить параметр param full_html=False, который даст вам только DIV, содержащий цифру.

Вы можете просто записать несколько цифр в одну HTML, добавив DIV, содержащие цифры:

with open('p_graph.html', 'a') as f:
    f.write(fig.to_html(full_html=False, include_plotlyjs='cdn'))
    f.write(fig.to_html(full_html=False, include_plotlyjs='cdn'))
    f.write(fig.to_html(full_html=False, include_plotlyjs='cdn'))

https://plot.ly/python-api-reference/generated/plotly.io.to_html.html

Вы также можете использовать Beautiful Soup для манипулирования DOM и вставлять DIV именно там, где вам нужно, в HTML.

https://beautiful-soup-4.readthedocs.io/en/latest/#append

0 голосов
/ 23 января 2020

Зависит от того, как вы создаете страницу html. Если это с from plotly.offline.plot (рис., Имя файла = 'имя. html'), то это невозможно. Как вы упомянули, субплот слишком мал, вы можете играть с игрой с переменным ростом и весом в макете:

В макете:

from plotly.offline import plot
from plotly.subplots import make_subplots
import plotly.graph_objects as go

fig = make_subplots(
rows=3, cols=1, shared_xaxes=True, 
vertical_spacing=0.02)

fig.add_trace(go.Scatter(x=[0, 1, 2], y=[10, 11, 12]),
          row=3, col=1)

fig.add_trace(go.Scatter(x=[2, 3, 4], y=[100, 110, 120]),
          row=2, col=1)

fig.add_trace(go.Scatter(x=[3, 4, 5], y=[1000, 1100, 1200]),
          row=1, col=1)

fig.update_layout(height=1200, width=600,
              title_text="Stacked Subplots with Shared X-Axes")
fig['layout']['yaxis1'].update(domain=[0, 0.2])
fig['layout']['yaxis2'].update(domain=[0.3, 0.7])
fig['layout']['yaxis3'].update(domain=[0.8, 1])

plotly.offline.plot(fig, filename='name.html')

Если вы сами создаете страницу html вы можете визуализировать html divs как http://www.codingwithricky.com/2019/08/28/easy-django-plotly/ и играть с переменной высоты и ширины макета, чтобы увеличить или уменьшить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...