在matplotlib散点图中包含直方图

时间:2012-09-23 08:32:04

标签: python numpy matplotlib

我正在使用matplotlib中的散点图并且它们正在生成。但是,要显示x和y之间的相关性,我需要在两个轴上添加直方图作为子图(如此example中所示)。由于示例中的代码有点复杂,所以我无法遵循如何使我的散点图得到这些。这是我的代码:

import matplotlib.pyplot as plt
import numpy
from statlib import stats
from math import log

x1=numpy.loadtxt("a.txt")
x2 = numpy.loadtxt("b.txt")


x1 = numpy.array(x1)
x2 = numpy.array(x2)
x1 = x1.reshape(82,296)
x2 = x2.reshape(82,296)
x = numpy.vstack([x1, x2])


y1=numpy.loadtxt("c.txt")
y2=numpy.loadtxt("d.txt")

y1 = numpy.array(y1)
y2 = numpy.array(y2)

y1 = y1.reshape(82,296)
y2 = y2.reshape(82,296)

y = numpy.vstack([y1, y2])


plot = plt.scatter(y,x)
plt.grid('on')
plt.xlabel('X')
plt.ylabel('Y')
plt.ylim(-20,1000)
plt.title('Scatter Plot')

plt.show()

任何帮助都会非常有帮助。

1 个答案:

答案 0 :(得分:1)

the example复制代码。

找到该行

axScatter.scatter(x, y)

这会创建散点图。将它与您的行

进行比较
plot = plt.scatter(y,x)

除了xy被颠倒之外,它们基本相同。所以要将代码连接到示例, 只需更换

x = np.random.randn(1000)
y = np.random.randn(1000)

(来自示例),您的代码定义了yx