34

我正在使用 Python matplotlib。我想叠加散点图。我知道如何用命令叠加连续线图:

>>> plt.plot(seriesX)
>>> plt.plot(Xresampl)
>>> plt.show()

但它似乎与 scatter 的工作方式不同。或者也许使用带有指定线条样式的进一步参数的 plot() 。如何进行?谢谢

4

3 回答 3

52

您只需调用该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()

在此处输入图像描述

于 2012-06-25T14:05:57.953 回答
18

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

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()
于 2015-08-19T15:13:13.077 回答
0

这是另一种方式:

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()
于 2022-01-30T14:05:17.173 回答