设置 pandas 图的图例位置

Set the legend location of a pandas plot

我知道如何使用 plt.legend(loc='lower left') 设置 matplotlib 图的图例位置,但是,我正在使用 pandas 方法 df.plot() 绘图,需要将图例位置设置为 'lower left'.

有人知道怎么做吗?

已编辑:我实际上正在寻找一种通过 pandas' df.plot() 而不是通过 plt.legend(loc='lower left')

的方法

编辑

为了澄清原始答案,目前无法通过 pandas.DataFrame.plot 进行此操作。在其当前实现(版本 1.2.3)中,plot'legend' 参数仅接受布尔值或字符串 'reverse':

legend : False/True/'reverse'
   Place legend on axis subplots

它不接受图例位置字符串。剩余的 **kwargs 被传递到对应于指定的 'kind' 参数(默认为 matplotlib.pyplot.plot)的底层 matplotlib.pyplot 方法。 None 这些方法允许通过关键字参数进行图例定位。

因此,目前 唯一 方法是直接使用 plt.legend() - 正如我在下面的原始答案中所述。


如评论所示,您必须使用 plt.legend(loc='lower left') 将图例放在左下方。即使使用 pandas.DataFrame.plot - 也没有调整图例位置的参数,只有当图例被绘制时。这是一个显示用法的完整示例

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()

好吧,简单地链接它。

dframe.rank(ascending=False).plot(kind= 'bar').legend(loc='best')

假设 'dframe' 是一个 DataFrame。