41.1 Express

Plotly también se parece a matplotlib en que no grafica por capas. Se define el idioma gráfico, los marcadores y los canales con todos sus atributos simultáneamente.

Tiene unos por defecto

fig3 = px.histogram(df, x="Fruta", y="Puntaje", color="Entrevistado", barmode="group")

Pero son personalizables:

fig4 = px.histogram(df, x="Fruta", y="Puntaje", color="Entrevistado",
            title="Puntaje de las frutas",
            width=600, height=600/1.61,
            labels={ # reemplaza las etiquetas por defecto
                "Entrevistado": "Nombre entrevistado",  "Fruta": "Fruta seleccionada", "Puntaje": "Apreciación"},
            category_orders={ # reemplaza el orden por defecto
                "Fruta": ["Higo", "Kiwi", "Pitaya"], "Entrevistado": ["Jacinto", "Alex"]},
            color_discrete_map={ # reemplaza el color por defecto
                "Jacinto": "darkkhaki", "Alex": "deepskyblue"},)

Otras personalizaciones se pueden realizar por medio de las familia de funciones fig.update_ y fig.add_:

fig4a = px.histogram(df, x="Fruta", y="Puntaje", color="Entrevistado",
            title="Puntaje de las frutas",
            width=600, height=600/1.61,
            labels={ # reemplaza las etiquetas por defecto
                "Entrevistado": "Nombre entrevistado",  "Fruta": "Fruta seleccionada", "Puntaje": "Apreciación"},
            category_orders={ # reemplaza el orden por defecto
                "Fruta": ["Higo", "Kiwi", "Pitaya"], "Entrevistado": ["Jacinto", "Alex"]},
            color_discrete_map={ # reemplaza el color por defecto
                "Jacinto": "darkkhaki", "Alex": "deepskyblue"},).update_layout( # personaliza la fuente, y para la leyenda, la orientation y la posición.
    font_family="Rockwell",
    legend=dict(title=None, orientation="h", y=1, yanchor="bottom", x=0.5, xanchor="center"),
                   yaxis_title_text = 'Puntaje').add_shape( # añade un línea a voluntad, posiblemente indicativa.
    type="line", line_color="salmon", line_width=3, opacity=1, line_dash="dot",
    x0 = 0, x1 = 1, xref = "paper", y0 = 12, y1 = 12, yref = "y").add_annotation( # añade una anotación con un flecha.
    text = "Por debajo de los esperado!", x = "Higo", y = 12, arrowhead = 1, showarrow = True)