Python 在matplotlib散点图中包含直方图

Python 在matplotlib散点图中包含直方图,python,numpy,matplotlib,Python,Numpy,Matplotlib,我正在matplotlib中绘制散点图,它们生成得很好。然而,为了显示x和y之间的相关性,我需要在两个轴上添加直方图作为子图(如图所示)。因为示例中的代码有点复杂,所以我无法理解如何获得散点图。这是我的密码: 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"

我正在matplotlib中绘制散点图,它们生成得很好。然而,为了显示x和y之间的相关性,我需要在两个轴上添加直方图作为子图(如图所示)。因为示例中的代码有点复杂,所以我无法理解如何获得散点图。这是我的密码:

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()
任何帮助都会非常有用。

从中复制代码

找到线路

axScatter.scatter(x, y)
这将创建散点图。把它和你的产品线比较一下

plot = plt.scatter(y,x)
它们基本相同,只是
x
y
相反。因此,要将代码连接到示例, 简单地替换

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

(示例中)代码定义为
y
x

时会出现以下错误:警告(来自警告模块):文件“C:\Python27\lib\site packages\matplotlib\axes.py”,第7585行“这看起来是转置的(形状是%d x%d)”%x.shape[:-1])用户警告:二维历史输入应该是nsamples x nvariables;这看起来是转置的(形状是72 x 144)。此警告与
x
y
输入的形状有关。警告不应停止您的程序工作;尽管这是一个信号,表明可能有什么不对劲。
scatter
hist
命令实际上期望
x
y
为1D数组。如果不是,matplotlib将尝试将其转换为1D数组。因此,如果您不希望出现此警告,请重新考虑为什么要将二维数组发送到
hist
scatter
。因为我正在绘制的数据应该被重塑。另外,程序并没有给出带有此警告的图表-但是您关于保持示例程序不变的建议看起来是合法的,并且可能是解决问题的一种简单方法,而不必涉及示例程序的格式-这肯定是一个混乱。感谢您的支持和帮助。:-)