Agrega tags xey a una ttwig 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') 

Salida

¿Cómo puedo configurar fácilmente las tags x e y, al mismo tiempo que conservo mi capacidad para utilizar mapas de colores específicos? Noté que la envoltura plot() para los marcos de datos de pandas no toma ningún parámetro específico para eso.

La función df.plot() devuelve un objeto matplotlib.axes.AxesSubplot . Puede establecer las tags en ese objeto.

 In [4]: ax = df2.plot(lw=2, colormap='jet', marker='.', markersize=10, title='Video streaming dropout by category') In [6]: ax.set_xlabel("x label") Out[6]:  In [7]: ax.set_ylabel("y label") Out[7]:  

introduzca la descripción de la imagen aquí

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

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

Si etiqueta las columnas y el índice de su dataframe, los pandas suministrarán automáticamente las tags 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') 

introduzca la descripción de la imagen aquí

En este caso, aún deberá suministrar las tags y manualmente (por ejemplo, a través de plt.ylabel como se muestra en las otras respuestas).

Puedes usar hazlo 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 quieres que sean.

Es posible establecer ambas tags juntas con la función axis.set . Busca el ejemplo:

 import pandas as pd import matplotlib.pyplot as plt values = [[1,2], [2,5]] df2 = pd.DataFrame(values, columns=['Type A', 'Type B'], index=['Index 1','Index 2']) ax = df2.plot(lw=2,colormap='jet',marker='.',markersize=10,title='Video streaming dropout by category') # set labels for both axes ax.set(xlabel='x axis', ylabel='y axis') plt.show() 

introduzca la descripción de la imagen aquí

Para los casos en los que usas pandas.DataFrame.hist :

 plt = df.Column_A.hist(bins=10) 

Tenga en cuenta que obtiene un ARRAY de gráficos, en lugar de un gráfico. Por lo tanto, para establecer la etiqueta x deberá hacer algo como esto.

 plt[0][0].set_xlabel("column A")