Делитесь rCharts через блокнот IPython

Мне удалось встроить эту карту в блокнот IPython (что приятно), но Я не понимаю, как я могу поделиться этим с людьми, не использующими Блокнот. Я знаком со средством просмотра bl.ocks.org. Это отлично подходит для отдельных примеров, но я хочу поделиться остальной частью анализа в блокноте вместе с интерактивными диаграммами. Ни HTML-преобразование Блокнота, ни визуализация nbviewer не могут найти карту (я получаю сообщение 404).

После первого 404 (с этим сущностью) я изменил функцию просмотра, чтобы зафиксировать местоположение github файл карты (V2). Я пока не понимаю, почему, но это изменение помешало nbviewer даже отображать окружающие материалы. Любые мысли о лучшем способе сделать это?


person Marvin Ward Jr    schedule 29.12.2013    source источник
comment
Ваша ссылка неверна. Пожалуйста, обновите их. (Или вы сделали свою суть конфиденциальной, и в этом случае вам нужно сделать ее общедоступной.)   -  person Matt    schedule 29.12.2013
comment
Извините за это, не понял, что сокращенная версия была передана. Теперь основные ссылки должны работать.   -  person Marvin Ward Jr    schedule 29.12.2013
comment
Без проблем. Не редактируйте файлы ipynb напрямую. Ваше изменение (+filename+) сделало файл недопустимым json. Nbviewer не запускает ваш код, то, что вы сохраните в своей записной книжке, будет отображаться, нет смысла пытаться заставить nbviewer интерпретировать какое-либо имя переменной. Также существует from IPyhton.display import IFrame, чтобы избежать проблем с ручным использованием HTML('<iframe src='i make some mistake and it does not render anymore'></iframe>)   -  person Matt    schedule 29.12.2013


Ответы (1)


Проблема в том, что карта сохраняется как локальный файл HTML (rChart_map.html) и, следовательно, недоступна для nbviewer, когда вы пытаетесь просмотреть ее онлайн.

Даже если вы загрузите rChart_map.html в Gist, он не будет отображаться из-за проблем с путями. Локально вам нужно обращаться к нему как /files/rChart_map.html в блокноте IPython, тогда как в сети он имеет другой путь. Ранее я опубликовал эту проблему в твиттере, используя тег #IPython, но не получил ответов о том, как отлаживать.

Так, где это оставляет нас. Что ж, к счастью, большинство современных браузеров позволяют iframe содержать встроенный HTML с использованием тега srcdoc. Это позволяет сгенерированному файлу .ipynb быть автономным, как показано здесь, в конце файл.

Ключ в том, чтобы использовать следующий код. Первая строка создает iframe со встроенным HTML-кодом карты и сохраняет его в переменной Python map2. Вторая строка импортирует необходимые модули Python, а третья строка отображает HTML. Обратите внимание, что мы используем h2[0], поскольку map2 — это массив из-за преобразования из R, который векторизован.

map2 = %R paste(capture.output(map$show('iframesrc', cdn = TRUE)), collapse = '\n')
from IPython.display import display, HTML
HTML(map2[0])

Чтобы это работало, вам потребуется версия rCharts > 0.4.1.

Я заинтересован в том, чтобы упростить использование rCharts в блокнотах IPython. Так что любые предложения/отзывы приветствуются.

person Ramnath    schedule 29.12.2013
comment
Это отличный обходной путь, который, безусловно, будет полезен для меня. Я не уверен, что у меня достаточно знаний HTML, чтобы дать наиболее эффективный совет по разработке (большая часть моей работы с HTML представляет собой небольшие вмешательства типа хакерства). Я могу предоставить варианты использования, которые, возможно, частично совпадают с другими. Я буду добавлять их в вашу ленту Ошибки по мере их появления, если только не будет предпочтительной альтернативы. . Спасибо за помощь. Я еще раз благодарен за скорость и эффективность вашего ответа. - person Marvin Ward Jr; 29.12.2013
comment
Не ссылайтесь на локальные файлы с /files/, но files/ без косой черты. это будет работать на nbviewer, если вы включите связанные файлы рядом с вашим ipynb. - person Matt; 29.12.2013
comment
Согласен, что может быть ошибка в nbviewer, которая не позволяет файлу работать с gists (необходимо добавить косую черту в конце URL-адреса) - person Matt; 29.12.2013
comment
Итак, будет ли files/file.html работать с nbviewer как локально, так и онлайн? - person Ramnath; 30.12.2013
comment
@Matt Добавление косой черты в конце также не работает. Можете ли вы опубликовать пример, показывающий, как заставить работать ссылку files/... в nbviewer? - person Ramnath; 30.12.2013
comment
По-видимому, это не работает с сутью (ошибка, вероятно, возникла, когда мы не так давно перешли на торнадо), проблемы 115, открытые в nbviewer для исправления. files/ должен работать на локальном и nbviewer, и больше не должен быть необходим с мастером IPython. - person Matt; 30.12.2013