Hist Plots¶
Altair es una biblioteca de visualización de datos en Python que utiliza una sintaxis declarativa para crear gráficos interactivos y de alta calidad. A continuación, se presentan algunos ejemplos de cómo crear histogramas con Altair en Python.
alt.Chart
es una función en la biblioteca de visualización de datos Altair en Python que se utiliza para crear gráficos. Un histograma es una representación gráfica de la distribución de una variable numérica. La función alt.Chart
toma una variable numérica y divide los datos en "bins" (contenedores) para contar la cantidad de observaciones que caen en cada bin.
Aquí hay algunos ejemplos de cómo crear histogramas con Altair en Python:
- Histograma básico:
In [1]:
Copied!
import altair as alt
import pandas as pd
import seaborn as sns
import warnings
warnings.filterwarnings("ignore", message=".*convert_dtype parameter is deprecated.*")
# Cargar los datos
tips = sns.load_dataset("tips")
# Crear el histograma
chart = alt.Chart(tips).mark_bar().encode(
alt.X("total_bill", bin=True, title="Total Bill"),
alt.Y("count()", title="Count")
).properties(
width=600,
height=400
).interactive()
# Mostrar el gráfico
chart
import altair as alt
import pandas as pd
import seaborn as sns
import warnings
warnings.filterwarnings("ignore", message=".*convert_dtype parameter is deprecated.*")
# Cargar los datos
tips = sns.load_dataset("tips")
# Crear el histograma
chart = alt.Chart(tips).mark_bar().encode(
alt.X("total_bill", bin=True, title="Total Bill"),
alt.Y("count()", title="Count")
).properties(
width=600,
height=400
).interactive()
# Mostrar el gráfico
chart
Out[1]:
- Histograma con KDE y líneas de referencia:
In [2]:
Copied!
import altair as alt
import pandas as pd
import seaborn as sns
# Cargar los datos
iris = sns.load_dataset("iris")
# Crear el histograma con KDE y líneas de referencia
base = alt.Chart(iris).transform_density(
density='petal_length',
as_=['petal_length', 'density']
).mark_area().encode(
x="petal_length:Q",
y="density:Q"
).properties(
width=600,
height=400
).interactive()
hist = alt.Chart(iris).mark_bar().encode(
alt.X("petal_length:Q", bin=True, title="Petal Length"),
alt.Y("count()", title="Count")
)
# Mostrar el gráfico combinado
hist + base
import altair as alt
import pandas as pd
import seaborn as sns
# Cargar los datos
iris = sns.load_dataset("iris")
# Crear el histograma con KDE y líneas de referencia
base = alt.Chart(iris).transform_density(
density='petal_length',
as_=['petal_length', 'density']
).mark_area().encode(
x="petal_length:Q",
y="density:Q"
).properties(
width=600,
height=400
).interactive()
hist = alt.Chart(iris).mark_bar().encode(
alt.X("petal_length:Q", bin=True, title="Petal Length"),
alt.Y("count()", title="Count")
)
# Mostrar el gráfico combinado
hist + base
Out[2]:
- Histograma con múltiples categorías:
In [3]:
Copied!
import altair as alt
import pandas as pd
import seaborn as sns
# Cargar los datos
titanic = sns.load_dataset("titanic")
# Crear el histograma con múltiples categorías
chart = alt.Chart(titanic).mark_bar().encode(
alt.X("age:Q", bin=alt.Bin(maxbins=30), title="Age"),
alt.Y("count()", stack=None, title="Count"),
alt.Color("sex:N", title="Sex")
).properties(
width=600,
height=400
).interactive()
# Mostrar el gráfico
chart
import altair as alt
import pandas as pd
import seaborn as sns
# Cargar los datos
titanic = sns.load_dataset("titanic")
# Crear el histograma con múltiples categorías
chart = alt.Chart(titanic).mark_bar().encode(
alt.X("age:Q", bin=alt.Bin(maxbins=30), title="Age"),
alt.Y("count()", stack=None, title="Count"),
alt.Color("sex:N", title="Sex")
).properties(
width=600,
height=400
).interactive()
# Mostrar el gráfico
chart
Out[3]:
- Histograma con barra de densidad y línea vertical para la media:
In [4]:
Copied!
import altair as alt
import pandas as pd
import seaborn as sns
# Deshabilitar el límite de filas permitido por Altair
alt.data_transformers.disable_max_rows()
# Cargar los datos
diamonds = sns.load_dataset("diamonds")
# Calcular la media
mean_price = diamonds["price"].mean()
# Crear el histograma con barra de densidad y línea vertical para la media
hist = alt.Chart(diamonds).mark_bar().encode(
alt.X("price:Q", bin=alt.Bin(maxbins=50), title="Price"),
alt.Y("count()", title="Count")
).properties(
width=600,
height=400
).interactive()
mean_line = alt.Chart(pd.DataFrame({'mean_price': [mean_price]})).mark_rule(color='red', strokeDash=[5,5]).encode(
x='mean_price:Q'
)
# Mostrar el gráfico combinado
hist + mean_line
import altair as alt
import pandas as pd
import seaborn as sns
# Deshabilitar el límite de filas permitido por Altair
alt.data_transformers.disable_max_rows()
# Cargar los datos
diamonds = sns.load_dataset("diamonds")
# Calcular la media
mean_price = diamonds["price"].mean()
# Crear el histograma con barra de densidad y línea vertical para la media
hist = alt.Chart(diamonds).mark_bar().encode(
alt.X("price:Q", bin=alt.Bin(maxbins=50), title="Price"),
alt.Y("count()", title="Count")
).properties(
width=600,
height=400
).interactive()
mean_line = alt.Chart(pd.DataFrame({'mean_price': [mean_price]})).mark_rule(color='red', strokeDash=[5,5]).encode(
x='mean_price:Q'
)
# Mostrar el gráfico combinado
hist + mean_line
Out[4]: