2016-03-31 6 views
1

Nach viel Forschung Anzeigen, ich habe jetzt endlich Tooltips somit in pygal Arbeits erhalten:pygal Charts nicht Tooltips in Jupyter/IPython Notebook

Config = pygal.Config() 
Config.js = ['http://kozea.github.io/pygal.js/2.0.x/pygal-tooltips.js'] 
bar_chart = pygal.Bar(Config)          # Then create a bar graph object 
bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]) # Add some values 
bar_chart.render_to_file('bar_chart.svg', force_uri_protocol='https') 

Im produziert .svg werden Tooltips arbeiten jetzt schön, aber nur wenn die Datei in einem Browser geöffnet wird. Wenn das Diagramm direkt in Jupyter angezeigt wird (entweder mit IPython.core.display.SVG(filename="bar_chart.svg") oder einfach bar_chart), sind die QuickInfos und das Styling nicht vorhanden.

Ist dies eine bekannte Einschränkung? Oder kann es erreicht werden?

+0

haben Sie Ihr Problem lösen? Ich habe das gleiche hier (zB: kein Tooltip für Pygal + Jupiter) –

Antwort

1

Gefunden this auf der Google-Suche, die mich zu dieser Frage geführt hat. Wenn Sie die pygal-Dokumentation lesen oder sich ein Beispiel-SVG ansehen, das generiert wird, sehen Sie, dass es pygal.js enthält, das in Ihrem Notizbuch fehlt.

4

Meine Abhilfe ging es um die HTML mit dem notwendigen Javascript und Chart-svg wie so einrichten:

import pygal 
from IPython.display import display, HTML 

base_html = """ 
<!DOCTYPE html> 
<html> 
    <head> 
    <script type="text/javascript" src="http://kozea.github.com/pygal.js/javascripts/svg.jquery.js"></script> 
    <script type="text/javascript" src="https://kozea.github.io/pygal.js/2.0.x/pygal-tooltips.min.js""></script> 
    </head> 
    <body> 
    <figure> 
     {rendered_chart} 
    </figure> 
    </body> 
</html> 
""" 

def galplot(chart): 
    rendered_chart = chart.render(is_unicode=True) 
    plot_html = base_html.format(rendered_chart=rendered_chart) 
    display(HTML(plot_html)) 

bar_chart = pygal.StackedBar() 
bar_chart.add('Bars', [1,2,3,4,5]) 

galplot(bar_chart) 

nicht die schönste Lösung, aber es funktioniert