2017-10-17 3 views
2

Ich habe einige Figuren mit Seaborn in einem Jupyter Notebook erstellt. Ich möchte diese Zahlen nun in einer PowerPoint-Präsentation vorstellen.Wie verwendet man Python Seaborn Visualisierungen in PowerPoint?

Ich weiß, dass es möglich ist, die Zahlen als PNG exportieren und sie in der Präsentation enthalten. Aber dann wären sie statisch, und wenn sich etwas im Datenrahmen ändert, wäre das Bild dasselbe. Gibt es eine Option, um eine dynamische Figur in PowerPoint zu haben? So etwas wie ein kleines Jupyter Notebook, das du in den Folien anzeigen kannst?

Antwort

2

Sie könnten versuchen Anaconda Fusion (auch die video here), die Sie Python innerhalb von Excel verwenden können. Dies könnte möglicherweise funktionieren, da Sie Zahlen/Datenelemente zwischen Excel und PowerPoint verknüpfen können (es können jedoch spezielle Einschränkungen gelten, wenn die Figur über Python anstatt über Standard-Excel erstellt wird). Anaconda Fusion ist für ein paar Monate kostenlos. Eine andere Lösung wäre die Verwendung des Jupyter Notebook to create your presentation instead of PowerPoint. Gehen Sie zu View -> Cell Toolbar -> Slideshow und Sie können wählen, welche Code-Zellen zu Folien werden sollen.

Ein dritter Ansatz wäre, eine Animation der Figur zu erstellen, während sich der Datenrahmen ändert, und dann die Animation (GIF oder Video) in PowerPoint einzufügen.

+1

Danke für die Antwort, Joel. Ich arbeite für ein Unternehmen, das ihre Corporate Slides und Think-Cell-Addins verwenden möchte, so dass das Erstellen einer Diashow von Jupyter keine Option ist. Ich werde Anaconda Fusion versuchen. –

1

Die folgenden Verfahren werden wahrscheinlich nicht die eleganteste Lösung sein, aber Sie können damit ein Seaborn-Plot erstellen, es als Bilddatei speichern und dasselbe Bild in eine geöffnete PowerPoint-Präsentation exportieren. Abhängig davon, ob Sie LinkToFile auf True oder False setzen, werden die Bilder aktualisiert oder nicht aktualisiert, wenn sich die Quelle ändert. Ich benutze das mit Zellen in Spyder, aber es sollte auch in einem Jupyter-Notebook funktionieren. Stellen Sie sicher, dass Sie einen Ordner mit dem Namen c:\pptSeaborn\ haben.

Hier ist sie:

# Some imports 
import numpy as np 
import seaborn as sns 
import os 
import matplotlib.pyplot as plt 
import win32com.client 
import win32api 

os.chdir('C:/pptSeaborn') 

# Settings for some random data 
mu = 0 
sigma = 1 
simulation = np.random.normal(mu, sigma, 10) 

# Make seaborn plot from simulated data. Save as image file. 
def SeabornPlot(data, filename = 'c:\\pptSeaborn\\snsPlot.png'):  
    ax = sns.kdeplot(data, shade=True) 
    fig = ax.get_figure() 
    fig.savefig(filename, bbox_inches='tight', dpi = 440) 
    plt.close(fig) 

# Import image file to active powerpoint presentation 
def SeabornPPT(plotSource, linkImage): 

    Application = win32com.client.Dispatch("PowerPoint.Application") 
    Presentation = Application.Activepresentation 
    slidenr = Presentation.Slides.Count + 1 
    Base = Presentation.Slides.Add(slidenr, 12) 
    gph = Base.Shapes.AddPicture(FileName=plotSource, 
            LinkToFile=linkImage, SaveWithDocument=True, 
            Left=50, Top=25, Width=800, Height=500) 
    Presentation.slides(slidenr).select() 

# Produce data, save plot as image, and export image to powerpoint 
SeabornPlot(data = simulation) 
SeabornPPT(plotSource = 'c:\\pptSeaborn\\snsPlot.png', linkImage = False) 

Nun, wenn Sie eine offene Powerpoint-Präsentation haben und das Ganze fünf Mal ausführen, werden Sie ungefähr wie folgt erhalten:

enter image description here

Wenn Sie Geh voran und rette das irgendwo, und öffne es wieder, es wird immer noch dasselbe aussehen.

Jetzt können Sie linkImage = True setzen und das Ganze fünf Mal wieder ausführen. Abhängig von den Zufallsdaten erhalten Sie immer noch fünf Folien mit verschiedenen Grafiken.

enter image description here

Aber jetzt, wenn Sie die Präsentation speichern und wieder öffnen, werden alle Grundstücke werden gleich aussehen, weil sie auf die gleiche Bilddatei verknüpft sind:

enter image description here

Der nächste Schritt könnte sein, die ganze Sache in eine Funktion einzuwickeln, die filename und LinkToFile als Argumente nimmt. Sie können auch angeben, ob die Prozedur bei jedem Exportieren eines Bilds eine neue Folie erstellt. Ich hoffe du findest meine sggestion nützlich. Ich mochte deine Frage, und ich hoffe, ein paar andere Vorschläge zu sehen.

+1

Vielen Dank, ich werde dies versuchen und Feedback dazu geben =) –

+0

Irgendwelche Erfolge mit diesem Vorschlag, oder hast du einen anderen Ansatz gefunden? – vestland

+1

Wir gingen mit einer anderen Idee. Sie können die Figuren als PNG-Datei speichern und in Powerpoint einfügen. Es gibt eine Option beim Einfügen, dass das Bild jedes Mal aktualisiert wird, wenn Sie PowerPoint öffnen, und eine neue Version der Datei aus dem Ordner, in dem ich es gespeichert habe, wiederherstellt. Wenn ich Änderungen an Seaborn vornimmt, wird automatisch eine neue Version der Datei als Bild gespeichert, die dann in PowerPoint aktualisiert wird. –

1

Wir gingen nun mit diesem Ansatz:

Sie die Zahlen als .png-Datei speichern kann, und legen Sie diese in Powerpoint.Es gibt eine Option beim Einfügen, dass das Bild jedes Mal aktualisiert wird, wenn Sie PowerPoint öffnen, und eine neue Version der Datei aus dem Ordner, in dem ich es gespeichert habe, wiederherstellt. Wenn ich Änderungen an Seaborn vornimmt, wird automatisch eine neue Version der Datei als Bild gespeichert, die dann in PowerPoint aktualisiert wird.

Verwandte Themen