【问题标题】:Matplotlib giving error "OverflowError: In draw_path: Exceeded cell block limit"Matplotlib 给出错误“OverflowError: In draw_path: Exceeded cell block limit”
【发布时间】:2016-09-25 00:59:11
【问题描述】:

我正在尝试使用具有 100000000 个数据点的 matplotlib 渲染图像,它会产生错误 OverflowError: In draw_path: Exceeded cell block limit。它可以绘制的数据点数量是否有限制?

【问题讨论】:

    标签: python python-3.x matplotlib


    【解决方案1】:

    问题在于后端 Agg 中点数的硬编码限制。

    尝试使用:

    import matplotlib as mpl
    mpl.rcParams['agg.path.chunksize'] = 10000
    

    或其他较大的值。

    您可以在此处找到问题和建议的解决方案:https://github.com/matplotlib/matplotlib/issues/5907

    【讨论】:

    • 我刚刚偶然发现这个问题/答案有类似的问题。它可以完成工作,但您能否详细说明您的答案。它有什么作用?首先是什么问题,默认值是多少?
    • @Serinity。请您详细说明这个答案。我有同样的问题,我什至不知道在哪里添加那行。
    • @Herc01 import matplotlib as mpl
    • @Herc01 我在调用 plot() 之前添加了该行,它为我解决了这个问题
    【解决方案2】:

    问题是后端Agg 中点数的硬编码限制。

    可以通过mpl.rcParams['agg.path.chunksize'] = 10000解决。

    您可以在此处找到问题和建议的解决方案:https://github.com/matplotlib/matplotlib/issues/5907

    【讨论】:

    • 没错,因为和上一个答案是一样的解决方案,但是有人要求进一步解释,我只是给出了解释。
    • 那么您可以评论已接受的答案或建议对其进行修改。
    • 获得更多积分。请不要滥用系统,请遵守规则。
    【解决方案3】:

    也许问题是因为 matplotlib 使用默认的内联绘图,这意味着它连接了点。这点有一些限制。但是,如果您删除内联绘图,它可能会起作用。试试

    import matplotlib.pyplot as plt
    plt.plot(x, y, 'ro', linestyle="None")
    

    “ro”是为了显示红点。

    【讨论】:

      猜你喜欢
      • 2020-05-21
      • 1970-01-01
      • 2018-06-03
      • 2015-01-03
      • 2018-06-07
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多