Чтение данных из файла Json и сохранение диаграммы в html с помощью Altair - PullRequest
0 голосов
/ 20 октября 2018

Я использую altair на ноутбуке jupyter, где я пытаюсь преобразовать кадр данных pandas в файл json перед передачей его в диаграмму Altair.Я хотел бы сохранить окончательный график в виде HTML-файла.

import altair as alt
alt.renderers.enable('notebook')
alt.data_transformers.enable('json')
from vega_datasets import data

url = 'data.json'
cars = data.cars()
cars.to_json(url, orient='records')

charts1=alt.Chart(url).mark_circle(size=60).encode(
x='Horsepower:Q',
y='Miles_per_Gallon:Q',
color='Cylinders:O',
tooltip=['Name:Q', 'Origin:N', 'Horsepower:Q', 'Miles_per_Gallon:Q']
).interactive()

charts1.save('cars1.html')


charts2=alt.Chart(cars).mark_circle(size=60).encode(
x='Horsepower:Q',
y='Miles_per_Gallon:Q',
color='Cylinders:O',
tooltip=['Name:Q', 'Origin:N', 'Horsepower:Q', 'Miles_per_Gallon:Q']
).interactive()

charts2.save('cars2.html')

charts1 | charts2

Графики 1 и диаграммы 2 отображаются правильно в блокноте jupyter, но только cars2.html отображается правильно, когда я открываю его в своем браузере.cars1.html - это просто пустая белая коробка.Я неправильно понял синтаксис?Я нахожусь на python3.6, версия Altair: '2.2.2', Jupyter: '4.3.0'.

1 Ответ

0 голосов
/ 20 октября 2018

Для chart1 данные существуют в отдельном файле (data.json), и этот файл должен быть доступен браузеру, чтобы браузер отображал данные в диаграмме.Если файл данных недоступен (либо из-за неправильного URL-адреса, либо из-за проблемы с несколькими источниками), то результатом будет пустой график.

Чтобы определить, в чем заключается проблема, откройтеоткройте консоль javascript в браузере и проверьте, в чем заключается ошибка.

Например, если вы просматриваете свою диаграмму с URL-адреса file://, данные могут быть недоступны, если в вашем браузере действуют строгие перекрестные политики.Попробуйте вместо этого просмотреть файл через локальный веб-сервер (вы можете использовать python -m http.server).

...