matplotlib 设置Pandas图的图例位置

bogh5gae  于 2023-03-09  发布在  其他
关注(0)|答案(3)|浏览(221)

我知道如何使用plt.legend(loc='lower left')设置matplotlib绘图的图例位置,但是,我使用panda方法df.plot()绘图,需要将图例位置设置为“左下角”。
有人知道怎么做吗?
编辑:我实际上是在寻找一种通过Pandas的df.plot()来做的方法,而不是通过plt.legend(loc='lower left')

q3qa4bjr

q3qa4bjr1#

好吧,把它拴起来。

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

假设“dframe”是 Dataframe 。

yyhrrdl8

yyhrrdl82#

编辑

为了澄清最初的答案,目前还没有办法通过pandas.DataFrame.plot来实现这一点,在当前的实现(版本1.2.3)中,plot'legend'参数只接受布尔值或字符串'reverse'

    • 图例**:* 错误/正确/"反向"*

   在轴子图上放置图例
它不接受图例位置字符串。剩余的**kwargs被传递到对应于指定'kind'参数(默认为matplotlib.pyplot.plot)的底层matplotlib.pyplot方法。这些方法都不允许通过其关键字参数进行图例定位。
因此,目前唯一的方法是直接使用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()

cbeh67ev

cbeh67ev3#

在panda 1.5.3中,你可以在plot()后面链接legend(),参见matplotlib
示例:

matched.set_index(
    matched.index.date
).plot(kind='barh', stacked=True
).legend(
    bbox_to_anchor=(1.0, 1.0),
    fontsize='small',
);

相关问题