python - example - Agregue etiquetas xey a un diagrama de pandas
plot pandas kind (5)
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 las etiquetas xey y conservando mi capacidad de utilizar mapas de color específicos? Noté que el contenedor plot()
para pandas DataFrames no toma ningún parámetro específico para eso.
Es posible establecer ambas etiquetas junto con la función axis.set
. Busque 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()
La función df.plot()
devuelve un objeto matplotlib.axes.AxesSubplot
. Puede establecer las etiquetas 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]: <matplotlib.text.Text at 0x10e0af2d0>
In [7]: ax.set_ylabel("y label")
Out[7]: <matplotlib.text.Text at 0x10e0ba1d0>
O, de manera más sucinta: 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 tiene uno. por lo que df2.index.name = ''x label''
también funcionaría.
Para los casos donde usa pandas.DataFrame.hist
:
plt = df.Column_A.hist(bins=10)
Tenga en cuenta que obtiene un ARRAY de tramas, en lugar de un argumento. Por lo tanto, para establecer la etiqueta x necesitarás hacer algo como esto
plt[0][0].set_xlabel("column A")
Puede usar hacerlo de esta manera:
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.
Si etiqueta las columnas y el índice de su DataFrame, los pandas suministrarán automáticamente las etiquetas adecuadas:
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, deberá suministrar las etiquetas y de forma manual (p. Ej., A través de plt.ylabel
como se muestra en las otras respuestas).