上次推文中,描述了MATLAB与Python在绘制条形图上的区别,那么我们今天继续学习,在绘制直方图时,两者之间的区别。
案例:
随机生成以10为中心的1000个正态分布的数,和1000个以12为中心的正态分布的数,然后将结果取值范围划分为30个等距离的区间,然后统计各个区间上数出现的个数。
(1)Python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['STSong']
plt.rcParams['axes.unicode_minus']=False
data_1 = np.random.randn(1000) + 10
data_2 = np.random.randn((1000)) + 12
plt.hist(data_1, bins=30)
plt.hist(data_2, bins=30)
plt.legend(['10为正态中心的数据分布','12为正态中心的数据分布'])
plt.xlabel('区间')
plt.ylabel('频数')
plt.title('直方图')
plt.show()
其绘制的条形图如下图所示:
关于在Python学习直方图的绘制,方法如下图所示:
(2)MATLAB
clc;
clear;
x=randn(1,1000)+10
y=randn(1,1000)+12
histogram(x,30)
hold on
histogram(y,30)
xlabel('区间')
ylabel('频数')
title('直方图')
legend('以10为正态中心的数据分布','以12为正态中心的数据分布')
其绘制的直方图如下图所示:
从代码上来看,两者最大的区别是:python中可以直接生成随机数,并可直接绘制在一张图中;matlab需要使用histogram函数并只能生成随机矩阵,所以我们定义一个一维数组来生成1000个随机数,并且需要利用hold on命令来将图绘制在一张图中。总的来说,两者思路还是一样的。