设置熊猫图的图例位置

Posted

技术标签:

【中文标题】设置熊猫图的图例位置【英文标题】:Set the legend location of a pandas plot 【发布时间】:2020-05-04 14:36:56 【问题描述】:

我知道如何使用plt.legend(loc='lower left') 设置matplotlib 绘图的图例位置,但是,我使用pandas 方法df.plot() 进行绘图并且需要将图例位置设置为“左下角”。

有人知道怎么做吗?

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

【问题讨论】:

你能展示一个 plt.legend(loc='lower left') 不起作用的示例代码吗? @danielLima 打完df.plot(...)之后就打plt.legend(loc='lower left') 嗨,当调用 df.plot() 时,我实际上正在寻找一种通过 pandas 实现此目的的方法 @DanielLima Pandas 绘图只是 matplotlib 上的一层。 Pandas 有自己的数据传递方式,但设置都是由 matplotlib 处理的。 Pandas 复制 matplotlib 的所有广泛功能是没有意义的。 Pandas 可以从数据框快速创建图。如果你需要微调,可以使用 matplotlib。 我已根据您的编辑编辑了我的答案,我建议您看看 【参考方案1】:

编辑

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

图例False/True/'reverse' 在轴子图上放置图例

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

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


正如 cmets 所示,您必须使用 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()

【讨论】:

【参考方案2】:

好吧,简单地把它串起来。

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

假设 'dframe' 是一个 DataFrame。

【讨论】:

欢迎来到 ***!非常好的解决方案:-) .legend 的文档位于 matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html

以上是关于设置熊猫图的图例位置的主要内容,如果未能解决你的问题,请参考以下文章

如何通过指令将matlab的legend设置在图的左上方

如何修改Tableau里图例的位置

Echarts 基本设置 设置图表位置

r怎么把图例设置在绘图区外

Python Matplotlib绘图笔记草稿 未完成

可变大小图形的图例位置