Te sugerimos que revises esta respuesta en un ambiente controlado antes de enviarlo a producción, un saludo.
Solución:
Editar
Para aclarar la respuesta original, actualmente no hay forma de hacerlo a través de pandas.DataFrame.plot
. En su implementación actual (versión 0.25.3) el 'legend'
argumento de plot
acepta sólo un valor booleano o el string 'reverse'
:
leyenda : Falso/Verdadero/’inverso’
Colocar leyenda en subparcelas de eje
No acepta cadenas de posición de leyenda. El restante **kwargs
se pasan al subyacente matplotlib.pyplot
método que corresponde al especificado 'kind'
argumento (el valor predeterminado es matplotlib.pyplot.plot
). Ninguna de esos métodos permiten el posicionamiento de la leyenda a través de sus argumentos de palabras clave.
Por lo tanto, los solamente manera de hacer esto en la actualidad es utilizar plt.legend()
directamente, como se describe en mi respuesta original, a continuación.
Como indican los comentarios, tienes que usar plt.legend(loc='lower left')
poner la leyenda en la parte inferior izquierda. Incluso cuando se usa pandas.DataFrame.plot
– no hay ningún parámetro que ajuste la posición de la leyenda, solo si se dibuja la leyenda. Aquí hay un ejemplo completo para mostrar el uso.
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.random.random(100)
df = pd.DataFrame('x': x, 'y':y)
df.plot(kind='scatter', x='x', y='y', label='Scatter')
plt.legend(loc='lower left')
plt.show()
Bueno, simplemente encadenalo.
dframe.rank(ascending=False).plot(kind= 'bar').legend(loc='best')
Suponiendo que ‘dframe’ es un DataFrame.
Sección de Reseñas y Valoraciones
Recuerda dar difusión a esta sección si si solucionó tu problema.