首页/文章/ 详情

MATLAB与Python绘图区别3—直方图

1年前浏览1950

上次推文中,描述了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)+10y=randn(1,1000)+12
histogram(x,30)hold onhistogram(y,30)
xlabel('区间')ylabel('频数')title('直方图')legend('以10为正态中心的数据分布','以12为正态中心的数据分布')

其绘制的直方图如下图所示:


从代码上来看,两者最大的区别是:python中可以直接生成随机数,并可直接绘制在一张图中;matlab需要使用histogram函数并只能生成随机矩阵,所以我们定义一个一维数组来生成1000个随机数,并且需要利用hold on命令来将图绘制在一张图中。总的来说,两者思路还是一样的。

来源:土木爱研小站
MATLABpython
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-08-16
最近编辑:1年前
语墨
硕士 不怕困难,勇往直前
获赞 66粉丝 74文章 130课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈