高考考试网
当前位置: 首页 高考资讯

pythonmatplotlib怎么画图(使用Python轻松做出各类图表)

时间:2023-06-08 作者: 小编 阅读量: 1 栏目名: 高考资讯

MATLAB可以做出各种函数以及数值分布图像非常的好用和方便。MATLAB虽然好用,但毕竟是收费软件,而且相比于MATLAB,很多人更喜欢Python的语法。第二种是作柱状图的叫做hist,第三种是作散点图的,叫做scatter,第四种是作饼状图的。我们查看图像,这个结果和我们的预期基本吻合。点状图第三种图像叫做散点图,它反应的是每个点的分布情况。而且3维的数据分布也不是很好观察。通过饼状图,我们可以很直观地了解到这点。

今天是数据处理专题的第9篇文章,在之前的8篇文章当中我们已经介绍完了pandas这个库的一些基本用法,我们先把一些冷门的高级用法放一放,先来给大家介绍一下另外一个很有用的数据分析库——matplotlib

matplotlib简介

如果你在大学里参加过数学建模竞赛或者是用过MATLAB的话,想必会对这一款软件中的画图功能印象深刻。MATLAB可以做出各种函数以及数值分布图像非常的好用和方便。如果你没用过呢也没关系,知道这么回事就好了。MATLAB虽然好用,但毕竟是收费软件,而且相比于MATLAB,很多人更喜欢Python的语法。

所以呢MATLAB就被惦记上了,后来有大神仿照MATLAB当中的画图工具,也在Python当中开发了一个类似的作图工具。这也就是我们今天这篇文章要讲的matplotlib,也是Python、数据分析以及机器学习领域当中使用最广泛的作图工具包,几乎没有之一。前段时间不是美国政府搞事情,导致MATLAB公司宣布对中国的几所高校禁止使用MATLAB嘛,有一些人就提出来说我们可以使用Python当中的一些开源工具代替,当然MATLAB当中还有很多其他厉害的功能,Python可能不一定能代替,但至少在作图这个领域是没问题的。

matplotlib 基本用法

matplotlib广泛流行的一个非常主要的原因就是它方便、好用,我们来看几个经典的例子就知道了,短短几行代码就可以作出质量非常高的图。

我们使用的是matplotlib这个包下的pyplot这个库,从名字上我们也看得出来它是Python库。如果你安装了Anaconda这样完整的Python包管理工具的话,那么这个包默认应该已经装好了。如果没有,可以使用pip安装一下,命令也非常简单。

pip install matplotlib

装好了包之后,我们通常的使用惯例是将它重命名成plt,所以如果你阅读一些源码以及其他大神的代码,作图的时候经常会出现plt.xxx,就是这么来的。

import matplotlib.pyplot as plt

plot当中有几种常用的作图工具,第一种是作折线图或者是曲线图的,叫做plot。第二种是作柱状图的叫做hist,第三种是作散点图的,叫做scatter,第四种是作饼状图的。除此之外还可以作一些三维的图像,但是一般日常当中使用得比较少,大部分是用来炫技的。

曲线图

plot其实是用来作曲线图的,采用的方法是描点呈现,它会将我们的数据点串联起来,成为一条光滑的曲线。当然,作折线、直线也都是可以的,最后成图的效果完全是由我们的数据决定的。

它的使用方法很简单,在最基本的用法当中,我们只需要传入两个list,分别代表x轴和y轴的值即可。比如我们要作出一个logistic的函数图像。我们可以这样:

x = np.linspace(-10, 10, 100)y = 1 / (1np.exp(-x))plt.plot(x, y)plt.show()

在上面的代码当中我们首先使用numpy当中的linspace函数生成了一个-10到10之间的numpy数组。这个数组当中有100个点,在-10到10之间均匀分布。我们对它计算对应的logistic函数的值,也就是y = 1/1e^(-x)。这个函数我想大家都应该很熟悉了,x是一个一百个点的list,对应的y也是一个一百个点的list。也就是说一个x对应一个y构成了一个点对,代表图中的一个坐标。

我们不需要做任何转化,只需要把这两个数组传入plt当中,它会自动替我们完成坐标的映射。最后呈现的效果如下。

我们可以看到作图的效果还是不错的,除了把图像完成的绘制出来之外,还替我们在坐标轴上画上了点位,方便我们查看数据。

直方图

hist可以用来绘制直方图,这也是我们非常常见的图像。在财经领域我们经常用直方图反应一个数据的走势,在数据分析和机器学习当中我们也经常用直方图来反应某一个特征或者是值的分布。

在直方图当中我们只需要传入一个数组,就是我们要求分布的数组,另外我们需要再输入一个参数bins,表示我们希望将数据分桶的数量。然后它会绘制出每个桶中数据数量的直方图,这样我们就可以很直观地看出分布来了。

x = np.random.normal(size=200)plt.hist(x,bins=30)plt.show()

这里我们调用numpy当中以正态分布概率随机的函数,得到的结果应该是正态分布的。

我们查看图像,这个结果和我们的预期基本吻合。

点状图

第三种图像叫做散点图,它反应的是每个点的分布情况。比如我们之前在介绍KNN和Kmeans模型的时候曾经都作过散点图,一个点代表一个样本,通过散点图我们观察的也是样本和数据分布的情况。但是和直方图相比它更加直观,我们能直接看到分布,而不是一个分布的统计结果。

但是它也有缺点,缺点就是我们只能观察二维平面当中的点的分布,毕竟超过3维的维度就没办法绘制了。而且3维的数据分布也不是很好观察。

同样散点图的绘制也很简单,我们只需要调用scatter函数传入x和y的数组即可。

x = np.random.rand(100)y = np.random.rand(100)plt.scatter(x, y)

这里我们的x和y都是随机分布,所以得到的结果是散乱没有规律的点。

饼状图

最后我们来看下饼状图,饼状图也很常用,虽然也是反映的数据分布,但是它更多是体现某一个值占的比例。通过饼状图,我们可以很直观地了解到这点。

我们可以传入一个list进入pie函数,plot会根据list当中值在总体的占比绘制饼状图。我们来看个很简单的例子:

a = np.array([0.5, 0.3, 0.2, 0.1, 0.8])plt.pie(a)

得到的结果如下:

和之前的结果相比饼状图稍稍不清晰一些,因为它虽然用不同颜色区分了不同的区域的,但是我们很难直观地看出来每一个区域分别代表什么。这个问题是可以解决的,我们可以通过传入一些参数和设定来让它展示更多的信息,让数据变得更加生动以及清晰。

今天的文章到这里就结束了,如果喜欢本文的话,请来一波素质三连,给我一点支持吧(关注、转发、点赞)。

- END -

本文始发于公众号TechFlow,求个关注

    推荐阅读
  • 在家水培蒜苗的方法(如何在家水培蒜苗)

    下面更多详细答案一起来看看吧!在家水培蒜苗的方法水培蒜苗时,需要选择颗粒饱满、未遭受病虫害的蒜瓣进行水培。在水培前,需要将蒜瓣的外皮剥去,并将蒜瓣浸泡在百菌清溶液中,消毒后,再向其中添加清水。使水面淹没蒜瓣的三分之二即可,在水培的过程中,还可以每隔一周更换一次水分。

  • 在恋爱中适合说的土味情话(甜蜜肉麻的土味情话)

    唐僧取经我娶你。就是千万人之中注意到你。二十六、我来自山海,为你困于爱。

  • 红凤菜的栽培技术介绍,红凤菜种植方法有哪些总结

    农业知识:红凤菜是过去人们常采食的一种野菜。又叫补血草。它有补血的作用,主要吃地上部分。野菜很好吃,但现在人们认识到它的营养价值,开始自己种植和供应。栽培有其独特的过程和需要注意的问题。现在我们来介绍一下它的栽培技术。 种植时间 一般时间在春秋两季,四季均可

  • 四川养猪户反映,当地猪有猪肺疫 猪肺疫传染猪吗

    猪肺疫病因起先是因为猪有呼吸道病,呼吸道病比较好医治,可是因为医治办法跟不上,越来越严峻开展成猪肺疫,这就难医治了,现已因为此病死了几头猪了,目前仍没有找到有用的医治办法。

  • 部落冲突九本配兵打法2022(部落冲突9本龙球流打法)

    在《部落冲突》中,九本可以说是玩家基数最大且受欢迎的阶段了。一天大概打两到三轮就能维持防御建筑的升级与刷墙的需要了,并且通过熟练运用掌握后,在部落战中往往也能取得两星高百分比甚至三星的好成绩。值得一提的是,该流派除了对阵型和下兵时机方位的基本判断要求以外,还非常需要手速~有时候药水的使用差之毫厘,最终的结果可能就是三星和黑三的区别。

  • 尸字旁的字有哪些(带有尸字旁的生字盘点)

    下面希望有你要的答案,我们一起来看看吧!尸字旁的字有哪些尸字头的字有:层、殿、届、居、局、屡、尼、尿、屈、屠、尾、屋、屑、展、属、履、屁、屏、屎、屉、犀。孱、羼、屙、屐、屦、尻、屣、屌、屃、杘、扉、凥、屩、屫、屪、屚、屛、屇、屖、屟、屧、屒等等。

  • 西米怎么弄给孩子吃(怎么做)

    下面更多详细答案一起来看看吧!西米怎么弄给孩子吃做西米露。把西米放进清水里洗浸干净备用,把一锅水煮沸,把西米放进煮沸的水里。煮到西米半透明.然后把西米和热水隔开,再煮一锅沸水.把刚才煮到半透明隔好水的西米再放到沸水里煮一直煮到全部透明。)把牛奶倒进西米里一起煮,不用煮太久,把煮好的西米牛奶放进冰箱.直到冰冻。

  • 长期吃粗粮主食的危害(吃错了反而更伤身)

    长期吃粗粮主食的危害粗粮缺乏优质蛋白、脂肪等其他营养物质,如果天天吃粗粮会导致营养不良、免疫力降低。长期吃粗粮还会影响人体对钙、铁等营养素的吸收,使人体缺乏许多基本的营养素,对心脏、骨骼等造成伤害,从而降低人体抵抗疾病的能力。因此,粗粮只能替代部分主食,与细粮按3:7的比例搭配进食,即70%的细粮、30%的粗粮,并且要保持品种多样化,不要觉得某种粗粮好吃,就一直吃,这样会造成营养不均衡。

  • 初秋的北京四合院(四季中的四合院春)

    初秋的北京四合院“一年四季无一月不好”,这是郁达夫寓居北京期间,据亲身感受所发的感慨。因俞老夫子之前在老君堂的四合院中住过,使他置身于舒适现代住宅中,任然对昔日四合院的场景难以忘怀。可见,四合院中的四季是多么的诱人。春小院闲窗春已深,重帘未卷影沉沉。四合院这个“院”使人与自然息息相关。此时庭院里又是另一番景象。四合院,一种艺术;四合院,一种传统;四合院,一种生活。

  • 茶油清洗方法(衣服茶油如何清洗)

    以下内容大家不妨参考一二希望能帮到您!茶油清洗方法深色衣服上的油渍,用残茶叶洗能去污。少许牙膏拌上洗衣粉混合搓洗衣服上的油污,油渍可除。取少去面粉,调成浆糊,涂在衣服的油渍正反面,在太阳下晒干,揭开面壳,即可清除油渍。放一个晚上,第二天就好了。