注1:本文系“MATLAB/Python的编程”系列之一,致力于使用Python和Matlab实现特定的功能。本次要实现的功能是:绘制一维和二维的分布直方图。
在数据分析中,我们经常需要绘制一维和二维的分布直方图。本教程将教您如何在MATLAB和Python中实现这个功能。我们将以一步步的方式进行,包括代码示例和结果解读。
在Python中,我们使用matplotlib和numpy库来实现这个功能。
如果你还没有安装matplotlib和numpy,可以在终端/cmd中输入以下命令进行安装:
pip install matplotlib numpy
我们首先从一维直方图开始。假设我们有一组随机数据,我们想看一下这组数据的分布情况。
import matplotlib.pyplot as plt
import numpy as np
# 生成一组随机数据
data = np.random.randn(1000)
# 绘制直方图
plt.hist(data, bins=30)
plt.show()
上面的代码首先生成了一组正态分布的随机数据,然后使用plt.hist函数绘制直方图。bins参数表示条形的数量。
接下来我们看看如何绘制二维直方图。假设我们有两组相关的数据,我们想看一下这两组数据的联合分布情况。
# 生成两组相关的数据
data1 = np.random.randn(1000)
data2 = data1 + np.random.randn(1000)
# 绘制二维直方图
plt.hist2d(data1, data2, bins=30)
plt.colorbar()
plt.show()
上面的代码首先生成了两组相关的数据,然后使用plt.hist2d函数绘制二维直方图。colorbar函数添加了一个颜色条,用于表示每个bin中数据的数量。
在MATLAB中,我们也可以实现相同的功能。
% 生成一组随机数据
data = randn(1000, 1);
% 绘制直方图
hist(data, 30)
MATLAB中的hist函数和Python中的hist函数类似,都用于绘制一维直方图。
在MATLAB中,我们使用histogram2函数来绘制二维直方图。
% 生成两组相关的数据
data1 = randn(1000, 1);
data2 = data1 + randn(1000, 1);
% 绘制二维直方图
histogram2(data1, data2, 'BinMethod', 'integers')
colorbar
上面的代码生成了两组相关的数据,然后使用histogram2函数绘制二维直方图。BinMethod参数用于设置bin的数量。