删除pandas plot.area的抗锯齿

ahs*_*tat 7 python plot matplotlib pandas

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

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

然而,结果是奇怪的抗锯齿,将颜色混合在一起,如下面的2个图所示: plot.area的示例

plot.area的缩放

文档中提供的示例中出现相同的问题.

你知道如何删除这种抗锯齿吗?(或者另一种意思是为线图的堆叠表示得到一个整洁的输出.)

Imp*_*est 3

使用 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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

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

在此输入图像描述

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

fig, ax = plt.subplots()
ax.stackplot(df.index, df.values.T, antialiased=False)
Run Code Online (Sandbox Code Playgroud)

然而,结果可能在视觉上并不吸引人:

在此输入图像描述