2013-07-05 8 views
15

znalazłem te dwie odpowiedzi: Animated graphs in ipython notebook, How to grab matplotlib plot as html in ipython notebook?Czy istnieje sposób tworzenia interaktywnych wykresów (a la D3) w notebookach IPython?

Ale oni nie uwzględniają interaktywność. Chciałbym wyświetlić wykres z 2-3 krzywymi i pozwolić użytkownikowi na najechanie tymi krzywymi, aby uzyskać więcej szczegółów lub kontrolować parametry, które są używane do generowania tych krzywych z kombi-boxa

Odpowiedz

7

Nie wierzę w standard Plany matplotlib są w stanie zapewnić interaktywność. Chaco potrafi wykonywać interaktywne wykresy, ale nie w notatniku z pythonem, AFAICT. Twój najlepszy zakład to prawdopodobnie Bokeh. To wyjście do JavaScript/HTML, może wykonywać interaktywne wykresy i ma przykład użycia go z ipython.

+1

Niestety, bokeh idzie w parze z implementacją płótna w przeciwieństwie do svg, więc interaktywność będzie poważnie utrudniona. spisek oparty jest na d3js, umożliwiając znacznie bogatsze (imo) doświadczenie –

1

można uruchomić JavaScript prosto z notebooków ipython (%%html i %%javascript), więc powinno być możliwe uruchomienie D3 kod. Sprawdź to video. Dokładny sposób, w jaki zostanie to zaimplementowane, nie jest jeszcze ustalony, ponieważ jest to funkcja dla IPython 2.0. Obecnie dostępnych jest wiele hacków, a także projektów, które próbują przenieść niektóre cechy D3 do Pythona (takie jak bokeh i python-nvd3).

Nie przetestowałem jeszcze żadnego z nich. Moje własne nastawienie byłoby spróbować poniższy przykład pierwszy, który jest statyczny, ale używa D3 bezpośrednio (tak jak powinno teoretycznie praca dla interaktywnych wykresów):

7

Możesz sprawdzić numer Plotly. Wewnątrz notesów IPython renderują interaktywne wykresy D3 (przykłady: here.Możesz eksportować jako obrazy statyczne, a także przybliżać, przesuwać, przesuwać i wyświetlać tekst na zawinięciu.Terenowość jest jednym z wyróżników, które podkreślają. można również użyć IPython widgets wewnątrz notebooka, co daje większą kontrolę i opcje. na przykład:.

enter image description here

+0

+1 dla wskaźnika w dobrym kierunku. Jeśli chcesz mieć interaktywne, strumieniowe wykresy osadzone w notesie IPython, (tak jak ja) zdecydowanie jest lepszym wyborem niż bokeh (mogłem tylko uzyskać wydruki rozproszone w celu rozpraszania w bokeh, a nie histogramy, pudło, itp.). – nikosd

+0

Czy dostępna jest darmowa wersja programu Plotly? (taki, który nie wymaga od użytkownika, aby jego działki były publiczne, to jest) –

+0

@ eldad-a wydaje się, że możesz spiskować prywatnie, przygotowałem kilka, zobacz https://plot.ly/python/getting-started/ – eqzx

9

sprawdzić następujące odpowiedź na iPython: Manipulate-like command

jak również dwa następujące kierunki :

  1. MPLD3: Bringing Matplotlib to the Browser (wspomniano powyżej link)
  2. ipython interact/ive jako motywację w IPython - The Attributes ofSoftware and How They Affect Our Work - Brian Granger pobliżu 32m: 12s; i dostępny pod adresem IPython's github
+0

dzięki za link na mpld3 – Alleo

+2

+1 mpld3 jest całkiem słodki. Możesz go po prostu zaimportować i uruchomić 'mpld3.enable_notebook()' pod wywołaniem '% pylab inline', a wszystkie wykresy stają się interaktywne. Może się jednak trochę powolnie. – naught101

2

Kolejnym rozwiązaniem może być biblioteka Charts. Umożliwia korzystanie z doskonałej biblioteki javascript Highcharts, aby tworzyć piękne i interaktywne wątki po wyjęciu z pudełka.

Niektóre funkcje:

  • działki wektorowe, które można pobrać w formacie .jpg, .png i .svg formatach, dzięki czemu nigdy nie napotkasz problemy rozmiar.
  • interaktywne wykresy (zoom, zjeżdżalnia, najedź punktów, ...)
  • użytkowa w notebooku ipython
  • Przeglądaj setki struktur danych w tym samym czasie za pomocą asynchronicznego kreślenia możliwości.

Disclaimer: Jestem twórcą biblioteki

Powiązane problemy