上次推文中,描述了MATLAB与Python在绘制条形图上的区别,那么我们今天继续学习,在绘制直方图时,两者之间的区别。
案例:
随机生成以10为中心的1000个正态分布的数,和1000个以12为中心的正态分布的数,然后将结果取值范围划分为30个等距离的区间,然后统计各个区间上数出现的个数。
在这个案例中,MATLAB与Python绘制条形图会有什么区别呢?
1)Python
import matplotlib.pyplot as pltimport numpy as npplt.rcParams['font.sans-serif']=['STSong']plt.rcParams['axes.unicode_minus']=Falsedata_1 = np.random.randn(1000) + 10data_2 = np.random.randn((1000)) + 12plt.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命令来将图绘制在一张图中。总的来说,两者思路还是一样的。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删