Столбчатая гистограмма с выделением с использованием Altair в Python

Опубликовано: 8 Сентября, 2022

Требования: Альтаир

В этой статье мы увидим гистограмму с накоплением с выбором с помощью Altair python. Это декларативный и интерактивный инструмент визуализации для Python, основанный на грамматике визуализации (VeGa). Он прост, удобен для пользователя и, кроме того, предоставляет понятные диаграммы. Он поддерживает широкий спектр диаграмм, таких как столбчатые, линейные, точечные, прямоугольные, скрипичные и другие диаграммы в интерактивном режиме. Давайте обсудим, как создать линейчатую диаграмму с накоплением с выделением для выделения определенного стека гистограммы.

Монтаж

Следующая команда может использоваться для установки Altair и Pandas, как и любой другой библиотеки Python:

pip install altair
pip install pandas
pip install altair_viewer

Используемые функции

  • Altair.selection_single() указывает тип выбора внутри метода выбора. Метод принимает параметры, которые обсуждаются ниже.

Syntax: altair.selection_single(type, encodings)

  • type – string. Determines the default event processing and data query for the selection. Three types single, multi (shift+ click), interval (drag).
  • encodings – List of encoding channels. The corresponding data field values must match for a data tuple to fall within the selection.
  • Метод encode() используется для сопоставления столбцов с визуальными атрибутами графика. Этот метод принимает параметры осей x и y и другие атрибуты диаграммы. Свойство mark указывает, как именно эти атрибуты должны быть представлены на графике.

Syntax: alt.Chart(data).mark_bar().encode(x, y, color)

  • x –  The x-axis value
  • y – The y-axis value
  • color – The color of the mark

Реализация

Импортируйте пакет Altair и pandas. Прочитайте набор данных с помощью pandas и укажите тип выбора, который мы использовали, с помощью метода selection_single() . Затем передайте набор данных в функцию chart() и используйте метод mark_bar().encode() для передачи значений по осям x и y и добавления объекта выбора после передачи параметров в функцию mark_bar().

Пример 1:

Набор данных, используемый для демонстрационных целей, можно скачать здесь.

Python3




import altair as alt
import pandas as pd
  
# load the data
source = pd.read_csv("test.csv")
  
# specify the type of selection, here single selection is used
selector = alt.selection_single(encodings=["x", "color"])
  
# use mark_bar function to plot a stacked bar and specify x and y axis
chart = alt.Chart(source).mark_bar().encode(
    x="State",
    y="sum(Vote %)",
    color=alt.condition(selector, "Party", alt.value("lightgray"))
).add_selection(
    selector
)
# initializer altair_viewer to display the interactive chart
alt.renderers.enable("altair_viewer")
chart.show()

Выход:

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

Пример 2:

Pandas DataFrame используется в демонстрационных целях.

Python3




import altair as alt
import pandas as pd
  
# creating a custom dataframe
data = pd.DataFrame([[254, "Subham", "ODI"],
                    [153, "Amit", "ODI"],
                    [128, "Anshu", "T20"],
                    [84, "Rahul", "T20"],
                    [222, "Kamal","Test"],
                    [244, "Viswajeet","Test"]],
                    columns=["Score", "Player", "Matches"])
  
# use mark_bar function to plot a stacked bar and specify x and y axis
gp_chart = alt.Chart(data).mark_bar().encode(
alt.Column("Matches"), 
alt.X("Player"),
alt.Y("Score", axis=alt.Axis(grid=False)),
alt.Color("Player"))
  
# initializer altair_viewer to display the interactive chart
alt.renderers.enable("altair_viewer")
gp_chart.display()

Выход: