【问题标题】:matplotlib one legend entry too muchmatplotlib 一个图例条目太多
【发布时间】:2016-04-13 12:09:02
【问题描述】:

我正在尝试在 python 2.7 中使用不同的标记颜色绘制错误图。此外,我还包括线图。 我在这里找到了一种方法:matplotlib errorbar plot - using a custom colormap 对颜色使用散点图,对条形使用 errorbar()。

正如您在我的示例代码中看到的那样,在图例中,我总是得到太多的条目(就在顶部)。我想不通,为什么。试图排除它,但没有奏效。也没有找到有用的东西,因为我不能真正调用第一个图例条目。

有什么想法吗?

这是我的代码:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

%matplotlib inline


data = pd.DataFrame()
data['x'] = range(10)
data['y'] = data.x
data['err'] = .5
data['col'] = np.where(data.y<5,'r','b')

### setup 1-1 line
lin = pd.DataFrame()                            # setting 1-1 line
lin['x'] = range(10)
lin['y'] = range(10)

### setup 1-2 line
lin['x2'] = lin.x
lin['y2'] = lin.y

plt.errorbar(data.x, data.y, yerr = data.err, \
                   xerr = .3, fmt=' ', markersize=4, zorder = 1)
plt.scatter(data.x,data.y, marker='o', color = data.col, zorder = 2)
plt.plot(lin.x,lin.y,'g-')
plt.plot(lin.x2,1.8*lin.y2,'r-')
plt.legend(['','1-1 line', '1-1.8 line','holla','molla'], loc=4)

我得到的是:

感谢您的帮助!

【问题讨论】:

  • 我无法用你的代码重现这个。
  • 对我来说运行 spyder 和 jupyter 都很好。 numpy: 1.11.0, pandas: 0.18.0, mpl: 1.3.1, 也许版本不同?
  • 是的,它运行,但我没有得到额外的图例条目
  • 确定吗?尝试在第一个图例条目中插入一些文本。我的一个朋友也一样
  • 我有 mpl 1.5.1。将文本放在第一个条目中会将其分配给绿线

标签: python matplotlib plot legend errorbar


【解决方案1】:

为了清理整个事情,我发布了一个正确的答案而不是 cmets。 该问题可以通过将 matplotlib 从 1.3.1 升级到 1.5.1 来解决。就这么简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-07
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 2019-05-15
    • 2022-01-21
    相关资源
    最近更新 更多