Agregue etiquetas xey a un diagrama de pandas
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')
¿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.
La df.plot()
función devuelve un matplotlib.axes.AxesSubplot
objeto. 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")
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.
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.
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')
En este caso, aún deberá proporcionar las etiquetas Y manualmente (por ejemplo, a través de, plt.ylabel
como se muestra en las otras respuestas).