叠加散点图

39
我正在使用Python的matplotlib库。我想要叠加散点图。我知道如何使用命令叠加连续线图。
>>> plt.plot(seriesX)
>>> plt.plot(Xresampl)
>>> plt.show()

但是似乎散点图的工作方式不同。或者可以使用plot()函数,并指定线条样式的其他参数。如何继续操作呢? 谢谢。
3个回答

55
你只需要调用scatter函数两次,matplotlib会为你叠加这两个图形。 你可能想指定一个颜色,因为所有散点图的默认颜色都是蓝色。这也许就是为什么你只看到了一个图形的原因。
import numpy as np
import pylab as plt

X = np.linspace(0,5,100)
Y1 = X + 2*np.random.random(X.shape)
Y2 = X**2 + np.random.random(X.shape)

plt.scatter(X,Y1,color='k')
plt.scatter(X,Y2,color='g')
plt.show()

在此输入图像描述


2
此外,使用例如"alpha=0.8"将为您提供透明度。 - ntg

20

如果您希望继续使用绘图功能,可以使用subplots返回的轴对象:

import numpy as np
import pylab as plt

X = np.linspace(0,5,100)
Y1 = X + 2*np.random.random(X.shape)
Y2 = X**2 + np.random.random(X.shape)

fig, ax = plt.subplots()
ax.plot(X,Y1,'o')
ax.plot(X,Y2,'x')
plt.show()

1

这里还有一种方法:

X = np.linspace(0,5,100)
Y1 = X + 2*np.random.random(X.shape)
Y2 = X**2 + np.random.random(X.shape)

plt.plot(Y1, label = "Y1")
plt.plot(Y2, label = "Y2")
plt.tight_layout()
plt.xlabel("X")
plt.ylabel("Y")
plt.legend()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接