Altair Barchart пуст, эквивалент matplotlib показывает правильную визуализацию

Я какое-то время использую Altair и впервые столкнулся с этой проблемой. У меня есть этот простой код:

import pandas as pd
import altair as alt

# extract data into a nested list
data = {
        "Name of District": ["Kollam", "Beed", "Kalahandi", "West Medinipur", "Birbhum", "Howrah"],
        "No. of Cases": [19, 11, 42, 145, 199, 85],
    }

# create a dataframe from the extracted data
df = pd.DataFrame(
    data
)

# Display the first 5 rows
print(df.head().to_markdown(index=False, numalign = "left", stralign = "left"))

# Create a bar chart with `Name of District` on the x-axis and `No. of Cases` on the y-axis
chart = alt.Chart(df).mark_bar().encode(
    x='Name of District',
    y='No. of Cases',
    tooltip=['Name of District', 'No. of Cases']
).properties(
    title='Bar Chart of No. of Cases by Name of District'
).interactive()

# Save the chart
chart.save('no_of_cases_by_name_of_district_bar_chart.json')
display(chart)

он возвращает этот сюжет:

Если я построю график с помощью matplotlib, то получу правильный график:

Я попробовал это в Colab и на своем локальном компьютере и получил одинаковые результаты. Почему это могло произойти?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
0
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Altair требует, чтобы в именах столбцов были экранированы специальные символы. См. документацию здесь.

Этот код должен создать сюжет, который вы ищете.

chart = alt.Chart(df).mark_bar(
).encode(
    x='Name of District',
    y='No\. of Cases',
    tooltip=['Name of District', 'No\. of Cases']
).properties(
    title='Bar Chart of No. of Cases by Name of District'
).interactive()

спасибо большое, раньше не замечал.

user14398375 01.07.2024 17:32

Другие вопросы по теме