Если у вас возникла проблема с преобразованием строки запроса в массив из-за кодированных амперсандов
&
, то обязательно используйте html_entity_decode
Пример:
// Input string //
$input = 'pg_id=2&parent_id=2&document&video';
// Parse //
parse_str(html_entity_decode($input), $out);
// Output of $out //
array(
'pg_id' => 2,
'parent_id' => 2,
'document' => ,
'video' =>
)
Согласно документации , вы должны иметь возможность переключаться туда и обратно следующим образом:
In [2]: %matplotlib inline
In [3]: plot(...)
In [4]: %matplotlib qt # wx, gtk, osx, tk, empty uses default
In [5]: plot(...)
, и появится всплывающее окно с обычным графиком (перезагрузка на может потребоваться ноутбук).
Надеюсь, это поможет.
Лучшим решением для вашей проблемы может быть библиотека Charts . Это позволяет вам использовать отличную java-библиотеку Highcharts для создания красивых и интерактивных сюжетов. Highcharts использует тег HTML svg
, поэтому все ваши диаграммы являются фактически векторными изображениями.
Некоторые функции:
Отказ от ответственности: Я разработчик библиотеки
Я использую ipython в «jupyter QTConsole» от Anaconda по адресу www.continuum.io/downloads, 28-28 марта.
Вот пример, чтобы перевернуть между отдельным окном и встроенным сюжетным режимом с использованием магии ipython.
>>> import matplotlib.pyplot as plt
# data to plot
>>> x1 = [x for x in range(20)]
# Show in separate window
>>> %matplotlib
>>> plt.plot(x1)
>>> plt.close()
# Show in console window
>>> %matplotlib inline
>>> plt.plot(x1)
>>> plt.close()
# Show in separate window
>>> %matplotlib
>>> plt.plot(x1)
>>> plt.close()
# Show in console window
>>> %matplotlib inline
>>> plt.plot(x1)
>>> plt.close()
# Note: the %matplotlib magic above causes:
# plt.plot(...)
# to implicitly include a:
# plt.show()
# after the command.
#
# (Not sure how to turn off this behavior
# so that it matches behavior without using %matplotlib magic...)
# but its ok for interactive work...
Перезагрузите ядро и очистите выходной файл (если не начинаете с нового ноутбука), затем запустите
%matplotlib tk
. Для получения дополнительной информации перейдите к Построение графика с помощью matplotlib
Начиная с matplotlib 1.4.0 теперь есть интерактивный бэкэнд для использования в ноутбуке
%matplotlib notebook
. Существует несколько версий IPython, у которых нет этого псевдонима, :
%matplotlib nbagg
Если это не работает, обновите IPython.
Чтобы играть с этим, goto tmpnb.org
и вставьте
%matplotlib notebook
import pandas as pd
import numpy as np
import matplotlib
from matplotlib import pyplot as plt
import seaborn as sns
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index,
columns=['A', 'B', 'C', 'D'])
df = df.cumsum()
df.plot(); plt.legend(loc='best')
в ячейку кода (или просто измените существующий демонстрационный ноутбук python)
Если все, что вы хотите сделать, это перейти от встроенных графиков к интерактивным и обратно (чтобы вы могли панорамировать / масштабировать), лучше использовать магию matplotlib.
#interactive plotting in separate window
%matplotlib qt
и обратно to html
#normal charts inside notebooks
%matplotlib inline
% pylab magic импортирует кучу других вещей и может даже привести к конфликту. Это делает «из импорта pylab».
Вы также можете использовать новый блокнот для ноутбука (добавленный в matplotlib 1.4):
#interactive charts inside notebooks, matplotlib 1.4+
%matplotlib notebook
Если вы хотите иметь больше интерактивности в своих диаграммах , вы можете посмотреть mpld3 и bokeh. mpld3 отлично, если у вас нет тоновых точек данных (например, & lt; 5k +), и вы хотите использовать обычный синтаксис matplotlib, но больше интерактивности по сравнению с ноутбуком% matplotlib. Bokeh может обрабатывать множество данных, но вам нужно изучить его синтаксис, поскольку это отдельная библиотека.
Также вы можете проверить pivottablejs (pip install pivottablejs)
from pivottablejs import pivot_ui
pivot_ui(df)
Однако крутая интерактивная разведка данных, она может полностью испортиться с воспроизводимостью. Это случилось со мной, поэтому я стараюсь использовать его только на самой ранней стадии и переключиться на чистый встроенный matplotlib / seaborn, как только я почувствовал данные.