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