Python 在matplotlib散点图中包含直方图
我正在matplotlib中绘制散点图,它们生成得很好。然而,为了显示x和y之间的相关性,我需要在两个轴上添加直方图作为子图(如图所示)。因为示例中的代码有点复杂,所以我无法理解如何获得散点图。这是我的密码: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"
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
。因为我正在绘制的数据应该被重塑。另外,程序并没有给出带有此警告的图表-但是您关于保持示例程序不变的建议看起来是合法的,并且可能是解决问题的一种简单方法,而不必涉及示例程序的格式-这肯定是一个混乱。感谢您的支持和帮助。:-)