Используйте alt.Chart () с данными из URL-адреса Google Drive - PullRequest
0 голосов
/ 20 мая 2019

Я строю сюжет с альтаиром в гугл колабе. Я нажал предупреждение 'max row': https://altair -viz.github.io / user_guide / faq.html # maxrowserror-how-can-i-plot-large-datasets .

это голова моего набора данных: df.head ()

Итак, теперь я пытаюсь передать данные по URL, как и мой googleDrive во-первых, я экспортировал файл на свой диск:

"change directory and export whole csv "
os.chdir(Directory.table_dir)
one.to_json('one.json', orient='records')

Затем я попытался использовать метод URLData: https://altair -viz.github.io / user_guide / generate / core / altair.UrlData.html # altair.UrlData

os.chdir(Directory.table_dir)
#checking if i can read the file to a pandas dataframe
df=pd.read_json('one.json', orient='records')

source=alt.UrlData('content/gdrive/My Drive/SCTFT/Tables/one.json')


chart = alt.Chart(source).mark_point().encode(
    x='VG:Q',
    y='absID:Q',
    color='file:N',
)
chart

Я тоже пробовал:

source='content/gdrive/My Drive/SCTFT/Tables/one.json'

Печать из matplotlib с использованием df works.

Но с Альтаира я получаю: Альтаир

Я не получаю сообщений об ошибках. Должен ли я изменить способ экспорта файла? или как я связываю это с URL?

РЕДАКТИРОВАНИЕ С НОВОЙ ИНФОРМАЦИЕЙ

Я запустил код с https://colab.research.google.com/github/altair-viz/altair_data_server/blob/master/AltairDataServer.ipynb : pip install первый график

он работал до тех пор, пока:

Сервер данных Altair

это просто я запустил ноутбук без каких-либо изменений, так что, должно быть, проблема в настройке моего кола?

1 Ответ

0 голосов
/ 20 мая 2019

Данные URL, которые вы передаете в диаграмму, должны быть видны веб-интерфейсу через HTTP-запрос, и content/gdrive/My Drive/SCTFT/Tables/one.json не выглядит как действительный URL.

Поскольку ваши данные находятся на диске Google и недоступны через HTTP-URL, я бы предложил отключить проверку максимального количества строк и передать кадр данных непосредственно в диаграмму:

alt.data_transformers.enable(max_rows=None)

alt.Chart(df).mark_point().encode(
    x='VG:Q',
    y='absID:Q',
    color='file:N',
)
...