【问题标题】:Remove anti-aliasing for pandas plot.area删除 pandas plot.area 的抗锯齿
【发布时间】:2017-06-18 07:45:35
【问题描述】:

我想用 Python 绘制堆积区域,并找出这个 Pandas 的功能:

df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
df.plot.area();

但是,结果是奇怪的抗锯齿,将颜色混合在一起,如这两个图所示:

documentation中提供的示例也出现同样的问题。

你知道如何去除这种抗锯齿吗? (或者另一种方法是为线图的堆叠表示获得整洁的输出。)

【问题讨论】:

    标签: python pandas matplotlib plot


    【解决方案1】:

    使用 matplotlib 堆栈图可以正常工作

    fig, ax = plt.subplots()
    df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
    ax.stackplot(df.index, df.values.T)
    

    由于区域图是堆栈图,唯一的区别是区域的线宽,您可以将其设置为零。

    df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
    df.plot.area(linewidth=0)
    

    剩下的灰色线条确实是由于抗锯齿。您可以在 matplotlib 图中将其关闭

    fig, ax = plt.subplots()
    ax.stackplot(df.index, df.values.T, antialiased=False)
    

    然而,结果可能并不吸引人:

    【讨论】:

      【解决方案2】:

      看起来有两个边界。
      尝试零线宽:

      df.plot.area(lw=0);
      

      【讨论】:

      • 谢谢你的回答,这个选项好多了!更进一步,你知道如何去除堆叠区域之间残留的细微灰线吗?
      猜你喜欢
      • 2020-03-25
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 2011-07-05
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多