scatter
de plotly
Con la función scatter
de Plotly Express es muy fácil crear gráficos de dispersión o nubes de puntos con Plotly y Python. Tendrás que pasar tus datos como vector o como un data frame de pandas, tal y como se indica en el ejemplo siguiente.
import plotly.express as px
fig = px.scatter(x = [0, 1, 2, 3, 4, 5],
y = [16, 8, 4, 2, 1, 0])
# Alternativa: datos desde un data frame de pandas
# import pandas as pd
# df = pd.DataFrame({'x': [0, 1, 2, 3, 4, 5],
# 'y': [16, 8, 4, 2, 1, 0]})
# Gráfico de dispersión a partir de un data frame de pandas
# fig = px.scatter(df, x = "x", y = "y")
fig.show()
Agregar etiquetas a los ejes y un título
Si quieres agregar un título a tu gráfico puedes pasar un texto a title
. Si quieres personalizar las etiquetas de los ejes tendrás que utilizar el argumento labels
de la siguiente manera.
import plotly.express as px
fig = px.scatter(x = [0, 1, 2, 3, 4, 5],
y = [16, 8, 4, 2, 1, 0],
title = "Título del gráfico",
labels = {'x': 'Eje X', 'y':'Eje Y'})
fig.show()
Color por grupo
Puedes pasar una variable categórica al argumento color
para colorear las observaciones por grupo.
import plotly.express as px
import pandas as pd
# Data frame de pandas
df = pd.DataFrame({'x': [0, 1, 2, 3, 4, 5],
'y': [16, 8, 4, 2, 1, 0],
'group': ['0', '1', '0', '1', '0', '1']})
# Gráfico de dispersión
fig = px.scatter(df, x = "x", y = "y", color = "group")
fig.show()
Color en base a una variable numérica
El color se puede asignar a una variable numérica. En este escenario, las observaciones tendrán una escala de color continua en base a los valores de la variable pasada a color
.
import plotly.express as px
import pandas as pd
# Data frame de pandas
df = pd.DataFrame({'x': [0, 1, 2, 3, 4, 5],
'y': [16, 8, 4, 2, 1, 0]})
# Gráfico de dispersión
fig = px.scatter(df, x = "x", y = "y", color = "y")
fig.show()
Símbolos por grupo
Por defecto, todos los símbolos son círculos, pero si pasas una variable categórica a symbol
cada grupo se coloreará con un símbolo diferente.
import plotly.express as px
import pandas as pd
# Data frame de pandas
df = pd.DataFrame({'x': [0, 1, 2, 3, 4, 5],
'y': [16, 8, 4, 2, 1, 0],
'group': ['0', '1', '0', '1', '0', '1']})
# Gráfico de dispersión
fig = px.scatter(df, x = "x", y = "y", symbol = "group")
fig.show()
Tamaño de los símbolos en base a una variable
Es posible establecer el tamaño de los símbolos en base a los valores de una variable. En el siguiente ejemplo usaremos la variable y
para determinar el tamaño de los símbolos de modo que cuanto mayor sea el valor, más grandes serán los símbolos.
import plotly.express as px
import pandas as pd
# Data frame de pandas
df = pd.DataFrame({'x': [0, 1, 2, 3, 4, 5],
'y': [16, 8, 4, 2, 1, 0],
'group': ['0', '1', '0', '1', '0', '1']})
# Gráfico de dispersión
fig = px.scatter(df, x = "x", y = "y", color = "group", size = "y")
fig.show()
Opacidad
Ten en cuenta que puedes controlar la opacidad de los símbolos con opacity
. Los posibles valores oscilan entre 0 y 1.
import plotly.express as px
import pandas as pd
# Data frame de pandas
df = pd.DataFrame({'x': [0, 1, 2, 3, 4, 5],
'y': [16, 8, 4, 2, 1, 0]})
# Gráfico de dispersión
fig = px.scatter(df, x = "x", y = "y", opacity = 0.5)
fig.show()
La función scatter
de Plotly proprciona los argumentos marginal_x
y marginal_y
para agregar gráficos marginales a los gráficos de dispersión. Las posibles opciones son "box"
para gráficos de caja, "hist"
para histogramas, "violin"
para gráficos de violín y "rug"
para rug plots.
Gráfico de dispersión con gráficos de caja marginales
import plotly.express as px
import pandas as pd
# Data frame de pandas
df = pd.DataFrame({'x': [0, 1, 2, 3, 4, 5],
'y': [16, 8, 4, 2, 1, 0]})
# Gráfico de dispersión con gráficos de caja marginales
fig = px.scatter(df, x = "x", y = "y",
marginal_x = "box", marginal_y = "box")
fig.show()
Gráfico de dispersión con histogramas marginales
import plotly.express as px
import pandas as pd
# Data frame de pandas
df = pd.DataFrame({'x': [0, 1, 2, 3, 4, 5],
'y': [16, 8, 4, 2, 1, 0]})
# Gráfico de dispersión con histogramas marginales
fig = px.scatter(df, x = "x", y = "y",
marginal_x = "histogram", marginal_y = "histogram")
fig.show()
Gráfico de dispersión con gráficos de violín marginales
import plotly.express as px
import pandas as pd
# Data frame de pandas
df = pd.DataFrame({'x': [0, 1, 2, 3, 4, 5],
'y': [16, 8, 4, 2, 1, 0]})
# Gráfico de dispersión con rug plots marginales
fig = px.scatter(df, x = "x", y = "y",
marginal_x = "violin", marginal_y = "violin")
fig.show()
Gráfico de dispersión con rug plots marginales
import plotly.express as px
import pandas as pd
# Data frame de pandas
df = pd.DataFrame({'x': [0, 1, 2, 3, 4, 5],
'y': [16, 8, 4, 2, 1, 0]})
# Gráfico de dispersión con rug plots marginales
fig = px.scatter(df, x = "x", y = "y",
marginal_x = "rug", marginal_y = "rug")
fig.show()
También te puede interesar