Открыть HTML-файл по нажатию кнопки с python-plotly - PullRequest
0 голосов
/ 24 мая 2018

Я пишу скрипт на python, который читает из файла и строит графики в отдельных html-файлах с plotly. Я хотел бы иметь кнопку для перенаправления с одной страницы на другую (загрузка с диска). Я сталкивался с этим:

updatemenus = list([
dict(type="buttons",
buttons=list([dict(label = 'Next',method = 'update', args = ['shapes', []])])
)])

layout=go.Layout(title="Iteration_Number:"+str(counter_iter),updatemenus=updatemenus)

Но это используется для обновления данных или изменения макета.Что я хочу, это открыть еще одну HTML-страницу с диска при нажатии кнопки.Это возможно?

Я также видел это:

import webbrowser
url = "file:///home/tinyOS/Simulation_"+str(counter_iter+1)+".html"

webbrowser.open(url)

Что помогает мне открыть новую страницу, но опять же я хочу, чтобы это произошло при нажатии на кнопку. Есть идеи?Большое спасибо!

1 Ответ

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

Из вопроса я понимаю, что вы хотите группу кнопок на графическом графике, которые собираются открыть графический график в новой вкладке.

Таким образом, вам не нужно использовать графические кнопки для этих требований. Потому что они в основном используются для restyle, relayout и т. Д., Поэтому нет никакой связи между этими кнопками и открывающимися ссылками в новых вкладках.

Я бы порекомендовал иметь простые HTML-кнопки, которые по щелчку приведут вас к новой вкладке.

Простой способ сделать это - обернуть график в div, установленном наотносительное позиционирование и сделайте div обертывание кнопки в абсолютном положении и расположите ее в любом месте графика, пожалуйста, обратитесь к приведенному ниже примеру и дайте мне знать, если это решит вашу проблему!

Решение:

import plotly.plotly as py
import plotly.graph_objs as go
import plotly.offline as py_offline
from IPython.core.display import display, HTML
py_offline.init_notebook_mode()

display(HTML("""
<style>
.wrapper{
    position:relative;
}
.button-group{
    position:absolute;
    top:40px;
    left:90%;
    z-index: 30000;
}
.button-group a{
    display:block;
}
</style>
"""))

То, что происходит в приведенном выше фрагменте кода, сначала включает необходимые пакеты, затем необходимые стили!


data = [go.Bar(
            x=['giraffes', 'orangutans', 'monkeys'],
            y=[20, 14, 23]
    )]

display(HTML("""
<div class="wrapper">
    <div class="button-group">
    <a href="http://google.com" target="_BLANK">Google It</a>
    <a href="http://yahoo.com" target="_BLANK">Yahoo It</a>
</div>"""
    +str(py_offline.plot(data, filename='plot_name' ,output_type="div", include_plotlyjs=False)) 
+ '</div>'))

Основной фрагмент кода смы встраиваем кнопки, как показано выше, сначала мы определяем сюжетную диаграмму, затем, используя display and html функции, мы можем встроить кнопки в div с классом button-group и с помощью CSS мы позиционируем это, нотонны.

Пожалуйста, попробуйте приведенный выше код и дайте мне знать, если есть какие-либо сомнения относительно работы!

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