Невозможно вставить визуализацию altair как всплывающее окно на карте фолио

Я относительно новичок в Python, и это первый проект, над которым я работаю. Я пытаюсь построить простую многолинейную диаграмму с помощью altair во всплывающем окне маркера фолио. Я следил за примерами на этой странице https://github.com/python-visualization/folium/blob/master/examples/Popups.ipynb. Но когда я нажимаю на маркер, он просто белый. Карта и маркеры отображаются нормально, за исключением всплывающего окна. Вот как выглядит весь мой набор данных:

введите описание изображения здесь

Вот код:

import pandas as pd
import folium
import altair as alt
import json

chart = alt.Chart(df).mark_line().encode(
        x='index',
        y='Ambala',
        color='Variable')

chart_2 = json.loads(chart.to_json())
m = folium.Map([30,-80],zoom_start=2)
popup = folium.Popup(max_width=650)
folium.Vega(chart_2, height=350, width=650).add_to(popup)
folium.Marker([30, -80], popup=popup).add_to(m)
m

Обратите внимание, что это всего лишь образец кода. Я буду реализовывать это в большем масштабе в своем проекте. Я попытался построить визуализацию (которую нашел здесь: https://github.com/python-visualization/folium/blob/master/examples/data/vis1.json), и это, похоже, сработало нормально. Я просто не понимаю, почему один и тот же код работает для их сюжета, но не для моего, хотя altair создает красивую диаграмму из моего кода. Извините, если это звучит глупо, я все еще новичок и питон - мой первый язык. Спасибо


person Yash Pundir    schedule 12.08.2020    source источник


Ответы (1)


Если вы хотите использовать диаграмму Альтаира внутри карты фолиума, вам нужно использовать объект VegaLite вместо объекта Vega. Вам просто нужно изменить строку с объектом Vega следующим образом: folium.features.VegaLite(chart_2, height=350, width=650).add_to(popup)  folium map

person Pierre-Loic    schedule 14.08.2020