Agregue etiquetas xey a un diagrama de pandas

Resuelto Everaldo Aguiar asked hace 10 años • 8 respuestas

Supongamos que tengo el siguiente código que traza algo muy simple usando pandas:

import pandas as pd
values = [[1, 2], [2, 5]]
df2 = pd.DataFrame(values, columns=['Type A', 'Type B'], 
                   index=['Index 1', 'Index 2'])
df2.plot(lw=2, colormap='jet', marker='.', markersize=10, 
         title='Video streaming dropout by category')

Producción

¿Cómo configuro fácilmente etiquetas xey y al mismo tiempo conservo mi capacidad de usar mapas de colores específicos? Noté que el plot()contenedor para pandas DataFrames no toma ningún parámetro específico para eso.

Everaldo Aguiar avatar Feb 01 '14 01:02 Everaldo Aguiar
Aceptado

La df.plot()función devuelve un matplotlib.axes.AxesSubplotobjeto. Puede configurar las etiquetas en ese objeto.

ax = df2.plot(lw=2, colormap='jet', marker='.', markersize=10, title='Video streaming dropout by category')
ax.set_xlabel("x label")
ax.set_ylabel("y label")

ingrese la descripción de la imagen aquí

O, más sucintamente: ax.set(xlabel="x label", ylabel="y label").

Alternativamente, la etiqueta del eje x del índice se establece automáticamente en el nombre del índice, si lo tiene. también df2.index.name = 'x label'funcionaría.

TomAugspurger avatar Jan 31 '2014 18:01 TomAugspurger

Puedes usar hacerlo así:

import matplotlib.pyplot as plt 
import pandas as pd

plt.figure()
values = [[1, 2], [2, 5]]
df2 = pd.DataFrame(values, columns=['Type A', 'Type B'], 
                   index=['Index 1', 'Index 2'])
df2.plot(lw=2, colormap='jet', marker='.', markersize=10,
         title='Video streaming dropout by category')
plt.xlabel('xlabel')
plt.ylabel('ylabel')
plt.show()

Obviamente tienes que reemplazar las cadenas 'xlabel' y 'ylabel' con lo que quieras que sean.

jesukumar avatar Jan 31 '2014 18:01 jesukumar

Si etiqueta las columnas y el índice de su DataFrame, pandas proporcionará automáticamente las etiquetas apropiadas:

import pandas as pd
values = [[1, 2], [2, 5]]
df = pd.DataFrame(values, columns=['Type A', 'Type B'], 
                  index=['Index 1', 'Index 2'])
df.columns.name = 'Type'
df.index.name = 'Index'
df.plot(lw=2, colormap='jet', marker='.', markersize=10, 
        title='Video streaming dropout by category')

ingrese la descripción de la imagen aquí

En este caso, aún deberá proporcionar las etiquetas Y manualmente (por ejemplo, a través de, plt.ylabelcomo se muestra en las otras respuestas).

shoyer avatar Dec 17 '2014 08:12 shoyer