Dan*_*ima 12 python plot matplotlib legend-properties pandas
我知道如何使用 设置 matplotlib 图的图例位置plt.legend(loc='lower left')
,但是,我正在使用 Pandas 方法进行绘图df.plot()
并且需要将图例位置设置为“左下角”。
有谁知道怎么做?
编辑:我实际上是在寻找一种方法来通过 pandas'df.plot()
而不是通过plt.legend(loc='lower left')
Wil*_*ler 15
为了澄清原始答案,目前无法通过pandas.DataFrame.plot
. 在其当前实现(版本 1.2.3)中,'legend'
参数plot
仅接受布尔值或字符串'reverse'
:
传说:假/真/'反向'
?? 在轴子图上放置图例
它不接受图例位置字符串。其余的**kwargs
被传递到matplotlib.pyplot
对应于指定'kind'
参数的底层方法(默认为matplotlib.pyplot.plot
)。没有这些方法允许通过其关键字参数传奇的定位。
因此,目前唯一的方法是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()
Run Code Online (Sandbox Code Playgroud)
小智 13
好吧,简单地链接它。
dframe.rank(ascending=False).plot(kind= 'bar').legend(loc='best')
Run Code Online (Sandbox Code Playgroud)
假设 'dframe' 是一个 DataFrame。
小智 8
使用 pandas 1.5.3,您可以将 legend() 链接到plot() 后面,请参阅matplotlib。
例子:
matched.set_index(
matched.index.date
).plot(kind='barh', stacked=True
).legend(
bbox_to_anchor=(1.0, 1.0),
fontsize='small',
);
Run Code Online (Sandbox Code Playgroud)