Python matplotlib 叠加散点图

Posted

技术标签:

【中文标题】Python matplotlib 叠加散点图【英文标题】:Python matplotlib superimpose scatter plots 【发布时间】:2012-06-26 18:59:16 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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()

【讨论】:

【参考方案2】:

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

【讨论】:

进一步,使用例如“alpha=0.8”会给你透明度

以上是关于Python matplotlib 叠加散点图的主要内容,如果未能解决你的问题,请参考以下文章

转录组scatter plot 散点图和ma plot有啥区别

三维散点图:Python 之matplotlib篇

Python使用matplotlib模块绘制多条折线图散点图

用matplotlib画散点图

python matplotlib模块——绘制三维图形三维数据散点图(转)

从 Python 的 pandas 中的数据帧制作 matplotlib 散点图