Как переместить мой информационный фрейм pandas в d3?
Я новичок в Python и проработал несколько книг по нему. Все отлично, кроме визуализаций. Мне очень не нравится matplotlib, а Bokeh требует слишком большой стек.
Рабочий процесс, который я хочу:
Анализ данных с использованием панд в блокноте ipython -> визуализация с использованием d3 в sublimetext2
Тем не менее, будучи новичком в Python и d3, я не знаю, как лучше всего экспортировать мой pandas dataframe в d3. Должен ли я просто иметь его как CSV? JSON? Или есть более прямой путь?
Дополнительный вопрос: есть ли (разумный) способ сделать все в записной книжке ipython вместо переключения на сублиметекст?
Любая помощь будет оценена.
3 ответа
В принципе, нет лучшего формата, который бы соответствовал всем вашим потребностям в визуализации.
Это действительно зависит от визуализаций, которые вы хотите получить.
Например, столбчатая диаграмма с накоплением принимает в качестве входных данных файл CSV, а визуализация матрицы смежности принимает формат JSON.
Из моего опыта:
- для отображения отношений между элементами, таких как матрица смежности или диаграмма аккордов, предпочтительнее будет формат JSON, который позволит описывать только существующие отношения. Данные хранятся как в разреженной матрице, и несколько данных могут быть вложены с помощью словаря. Более того, этот формат можно напрямую анализировать в Python.
- для отображения свойств массива элементов может подойти формат CSV. Прекрасный пример можно найти здесь с параллельным отображением диаграммы.
- для отображения иерархических данных, таких как дерево, лучше всего подходит JSON.
Лучшее, что вы можете сделать, чтобы выяснить, какой формат вам нужен, - это посмотреть галерею d3js.
Вы можете использовать D3 непосредственно внутри Jupyter / Ipython. Попробуйте две ссылки ниже..
http://blog.thedataincubator.com/2015/08/embedding-d3-in-an-ipython-notebook/
https://github.com/cmoscardi/embedded_d3_example/blob/master/Embedded_D3.ipynb
Plotly есть как в Python, так и в Javascript. В качестве библиотеки графиков высокого уровня, она использует d3 под капотом, а также дает вам доступ к d3.