Как избежать ошибки Javascript при просмотре altair?

В python3 у меня есть фрейм данных на пандах:

import pandas as pd
import altair as alt

nomes_dep.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 120 entries, 0 to 119
Data columns (total 3 columns):
Deputado       120 non-null object
Valor          120 non-null object
porcentagem    120 non-null float64
dtypes: float64(1), object(2)
memory usage: 2.9+ KB

    Deputado                Valor           porcentagem
0   ITAMAR BORGES           1,225,322.51    1.60
1   CARLAO PIGNATARI        1,205,708.42    1.57
2   CAMPOS MACHADO          1,155,406.50    1.51
3   ALENCAR SANTANA BRAGA   1,149,436.08    1.50
4   FELICIANO FILHO         1,134,941.68    1.48

В колонке «Депутадо» есть имена людей. В столбце "porcentagem" указан процент расходов этих людей по отношению к общей сумме расходов учреждения.

С помощью altair я попытался создать горизонтальную гистограмму, по оси X значения столбца «porcentagem» и по оси Y названия столбца «Deputado»:

alt.Chart(nomes_dep.reset_index().head(10), title="Deputados com maiores totais de despesas em %").mark_bar().encode(
    x=alt.X("porcentagem:Q", axis=alt.Axis(title="Porcentagem", format="%s")),
    y=alt.Y(
        "Deputado:N",
        sort=alt.SortField(field="Porcentagem", op="sum", order="descending"),
        axis=alt.Axis(title="Deputados")
    )
)

Но в лаборатории jupyter у меня было такое сообщение:

Javascript Error: t is undefined. This usually means there's a typo in your chart specification. See the JavaScript console for the full traceback.

Пожалуйста, кто-нибудь знает, как я могу избежать этой ошибки?


person Reinaldo Chaves    schedule 16.07.2018    source источник


Ответы (1)


"%s" не является допустимым средством форматирования данных и поэтому приводит к ошибке при визуализации графика. Может ты имел ввиду ".0%"?

Для получения дополнительной информации о строках формата, поддерживаемых Altair, см. d3-format.

person jakevdp    schedule 17.07.2018