Plotly: gráfico de barras y gráfico circular

En este capítulo, aprenderemos cómo hacer gráficos de barras y circulares con la ayuda de Plotly. Comencemos por comprender el gráfico de barras.

Gráfico de barras

Un gráfico de barras presenta datos categóricos con barras rectangulares con alturas o longitudes proporcionales a los valores que representan. Las barras se pueden mostrar vertical u horizontalmente. Ayuda a mostrar comparaciones entre categorías discretas. Un eje del gráfico muestra las categorías específicas que se están comparando y el otro eje representa un valor medido.

El siguiente ejemplo traza un simple bar chartsobre el número de estudiantes matriculados en diferentes cursos. losgo.Bar() La función devuelve un trazo de barra con la coordenada x establecida como lista de materias y la coordenada y como número de estudiantes.

import plotly.graph_objs as go
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
data = [go.Bar(
   x = langs,
   y = students
)]
fig = go.Figure(data=data)
iplot(fig)

La salida será como se muestra a continuación:

Para mostrar un gráfico de barras agrupado, el barmode La propiedad del objeto Layout debe establecerse en group. En el siguiente código, se trazan múltiples trazos que representan a los estudiantes en cada año contra las materias y se muestran como un gráfico de barras agrupadas.

branches = ['CSE', 'Mech', 'Electronics']
fy = [23,17,35]
sy = [20, 23, 30]
ty = [30,20,15]
trace1 = go.Bar(
   x = branches,
   y = fy,
   name = 'FY'
)
trace2 = go.Bar(
   x = branches,
   y = sy,
   name = 'SY'
)
trace3 = go.Bar(
   x = branches,
   y = ty,
   name = 'TY'
)
data = [trace1, trace2, trace3]
layout = go.Layout(barmode = 'group')
fig = go.Figure(data = data, layout = layout)
iplot(fig)

La salida de la misma es la siguiente:

los barmodeLa propiedad determina cómo se muestran las barras en la misma coordenada de ubicación en el gráfico. Los valores definidos son "pila" (barras apiladas una encima de otra), "relativo" (las barras están apiladas una encima de la otra, con valores negativos debajo del eje, valores positivos arriba), "group"(barras trazadas una al lado de la otra).

Cambiando la propiedad de modo de barra a 'stack'el gráfico trazado aparece como a continuación:

Gráfico circular

Un gráfico circular muestra solo una serie de datos. Pie Charts mostrar el tamaño de los elementos (llamado wedge) en una serie de datos, proporcional a la suma de los elementos. Los puntos de datos se muestran como un porcentaje del pastel completo.

los pie() funcionar en graph_objs módulo - go.Pie(), devuelve un trazo circular. Dos argumentos requeridos sonlabels y values. Tracemos un gráfico circular simple de cursos de idiomas frente al número de estudiantes como en el ejemplo que se proporciona a continuación.

import plotly
plotly.tools.set_credentials_file(
   username = 'lathkar', api_key = 'U7vgRe1hqmRp4ZNf4PTN'
)
from plotly.offline import iplot, init_notebook_mode
init_notebook_mode(connected = True)
import plotly.graph_objs as go
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
trace = go.Pie(labels = langs, values = students)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)

La siguiente salida se muestra en el cuaderno Jupyter:

Donut chartes un gráfico circular con un agujero redondo en el centro que hace que parezca una dona. En el siguiente ejemplo, se muestran dos gráficos de anillos en un diseño de cuadrícula de 1X2. Mientras 'labelEl diseño es el mismo para los trazos circulares, el destino de fila y columna de cada subparcela se decide por la propiedad del dominio.

Para este propósito, utilizamos los datos de los escaños por partido y el porcentaje de votos en las elecciones parlamentarias de 2019. Ingrese el siguiente código en la celda del cuaderno Jupyter:

parties = ['BJP', 'CONGRESS', 'DMK', 'TMC', 'YSRC', 'SS', 'JDU','BJD', 'BSP','OTH']
seats = [303,52,23,22,22,18,16,12,10, 65]
percent = [37.36, 19.49, 2.26, 4.07, 2.53, 2.10, 1.46, 1.66, 3.63, 25.44]
import plotly.graph_objs as go
data1 = {
   "values": seats,
   "labels": parties,
   "domain": {"column": 0},
   "name": "seats",
   "hoverinfo":"label+percent+name",
   "hole": .4,
   "type": "pie"
}
data2 = {
   "values": percent,
   "labels": parties,
   "domain": {"column": 1},
   "name": "vote share",
   "hoverinfo":"label+percent+name",
   "hole": .4,
   "type": "pie"
}
data = [data1,data2]
layout = go.Layout(
   {
      "title":"Parliamentary Election 2019",
      "grid": {"rows": 1, "columns": 2},
      "annotations": [
         {
            "font": {
               "size": 20
            },
            "showarrow": False,
            "text": "seats",
            "x": 0.20,
            "y": 0.5
         },
         {
            "font": {
               "size": 20
            },
            "showarrow": False,
            "text": "votes",
            "x": 0.8,
            "y": 0.5
         }
      ]
   }
)
fig = go.Figure(data = data, layout = layout)
iplot(fig)

La salida de la misma se da a continuación: