电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python matplotlib庫(kù)的基本使用

瀏覽:42日期:2022-07-10 11:45:49

matplotlib簡(jiǎn)介

如果你在大學(xué)里參加過(guò)數(shù)學(xué)建模競(jìng)賽或者是用過(guò)MATLAB的話,相比會(huì)對(duì)這一款軟件中的畫圖功能印象深刻。MATLAB可以做出各種函數(shù)以及數(shù)值分布圖像非常的好用和方便。如果你沒(méi)用過(guò)呢也沒(méi)關(guān)系,知道這么回事就好了。MATLAB雖然好用,但畢竟是收費(fèi)軟件,而且相比于MATLAB,很多人更喜歡Python的語(yǔ)法。

所以呢MATLAB就被惦記上了,后來(lái)有大神仿照MATLAB當(dāng)中的畫圖工具,也在Python當(dāng)中開(kāi)發(fā)了一個(gè)類似的作圖工具。這也就是我們今天這篇文章要講的matplotlib,也是Python、數(shù)據(jù)分析以及機(jī)器學(xué)習(xí)領(lǐng)域當(dāng)中使用最廣泛的作圖工具包,幾乎沒(méi)有之一。前段時(shí)間不是美國(guó)政府搞事情,導(dǎo)致MATLAB公司宣布對(duì)中國(guó)的幾所高校禁止使用MATLAB嘛,有一些人就提出來(lái)說(shuō)我們可以使用Python當(dāng)中的一些開(kāi)源工具代替,當(dāng)然MATLAB當(dāng)中還有很多其他厲害的功能,Python可能不一定能代替,但至少在作圖這個(gè)領(lǐng)域是沒(méi)問(wèn)題的。

matplotlib 基本用法

matplotlib廣泛流行的一個(gè)非常主要的原因就是它方便、好用,我們來(lái)看幾個(gè)經(jīng)典的例子就知道了,短短幾行代碼就可以作出質(zhì)量非常高的圖。

我們使用的是matplotlib這個(gè)包下的pyplot這個(gè)庫(kù),從名字上我們也看得出來(lái)它是Python庫(kù)。如果你安裝了Anaconda這樣完整的Python包管理工具的話,那么這個(gè)包默認(rèn)應(yīng)該已經(jīng)裝好了。如果沒(méi)有,可以使用pip安裝一下,命令也非常簡(jiǎn)單。

pip install matplotlib

裝好了包之后,我們通常的使用慣例是將它重命名成plt,所以如果你閱讀一些源碼以及其他大神的代碼,作圖的時(shí)候經(jīng)常會(huì)出現(xiàn)plt.xxx,就是這么來(lái)的。

import matplotlib.pyplot as plt

plot當(dāng)中有幾種常用的作圖工具,第一種是作折線圖或者是曲線圖的,叫做plot。第二種是作柱狀圖的叫做hist,第三種是作散點(diǎn)圖的,叫做scatter,第四種是作餅狀圖的。除此之外還可以作一些三維的圖像,但是一般日常當(dāng)中使用得比較少,大部分是用來(lái)炫技的。

曲線圖

plot其實(shí)是用來(lái)作曲線圖的,采用的方法是描點(diǎn)呈現(xiàn),它會(huì)將我們的數(shù)據(jù)點(diǎn)串聯(lián)起來(lái),成為一條光滑的曲線。當(dāng)然,作折線、直線也都是可以的,最后成圖的效果完全是由我們的數(shù)據(jù)決定的。

它的使用方法很簡(jiǎn)單,在最基本的用法當(dāng)中,我們只需要傳入兩個(gè)list,分別代表x軸和y軸的值即可。比如我們要作出一個(gè)logistic的函數(shù)圖像。我們可以這樣:

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

在上面的代碼當(dāng)中我們首先使用numpy當(dāng)中的linspace函數(shù)生成了一個(gè)-10到10之間的numpy數(shù)組。這個(gè)數(shù)組當(dāng)中有100個(gè)點(diǎn),在-10到10之間均勻分布。我們對(duì)它計(jì)算對(duì)應(yīng)的logistic函數(shù)的值,也就是1 / (1 + np.exp(-x))。這個(gè)函數(shù)我想大家都應(yīng)該很熟悉了,x是一個(gè)一百個(gè)點(diǎn)的list,對(duì)應(yīng)的y也是一個(gè)一百個(gè)點(diǎn)的list。也就是說(shuō)一個(gè)x對(duì)應(yīng)一個(gè)y構(gòu)成了一個(gè)點(diǎn)對(duì),代表圖中的一個(gè)坐標(biāo)。

我們不需要做任何轉(zhuǎn)化,只需要把這兩個(gè)數(shù)組傳入plt當(dāng)中,它會(huì)自動(dòng)替我們完成坐標(biāo)的映射。最后呈現(xiàn)的效果如下。

python matplotlib庫(kù)的基本使用

我們可以看到作圖的效果還是不錯(cuò)的,除了把圖像完成的繪制出來(lái)之外,還替我們?cè)谧鴺?biāo)軸上畫上了點(diǎn)位,方便我們查看數(shù)據(jù)。

直方圖

hist可以用來(lái)繪制直方圖,這也是我們非常常見(jiàn)的圖像。在財(cái)經(jīng)領(lǐng)域我們經(jīng)常用直方圖反應(yīng)一個(gè)數(shù)據(jù)的走勢(shì),在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)當(dāng)中我們也經(jīng)常用直方圖來(lái)反應(yīng)某一個(gè)特征或者是值的分布。

在直方圖當(dāng)中我們只需要傳入一個(gè)數(shù)組,就是我們要求分布的數(shù)組,另外我們需要再輸入一個(gè)參數(shù)bins,表示我們希望將數(shù)據(jù)分桶的數(shù)量。然后它會(huì)繪制出每個(gè)桶中數(shù)據(jù)數(shù)量的直方圖,這樣我們就可以很直觀地看出分布來(lái)了。

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

這里我們調(diào)用numpy當(dāng)中以正態(tài)分布概率隨機(jī)的函數(shù),得到的結(jié)果應(yīng)該是正態(tài)分布的。

python matplotlib庫(kù)的基本使用

我們查看圖像,這個(gè)結(jié)果和我們的預(yù)期基本吻合。

點(diǎn)狀圖

第三種圖像叫做散點(diǎn)圖,它反應(yīng)的是每個(gè)點(diǎn)的分布情況。比如我們之前在介紹KNN和Kmeans模型的時(shí)候曾經(jīng)都作過(guò)散點(diǎn)圖,一個(gè)點(diǎn)代表一個(gè)樣本,通過(guò)散點(diǎn)圖我們觀察的也是樣本和數(shù)據(jù)分布的情況。但是和直方圖相比它更加得直觀,我們能直接看到分布,而不是一個(gè)分布的統(tǒng)計(jì)結(jié)果。

但是它也有缺點(diǎn),缺點(diǎn)就是我們只能觀察二維平面當(dāng)中的點(diǎn)的分布,畢竟超過(guò)3維的維度就沒(méi)辦法繪制了。而且3維的數(shù)據(jù)分布也不是很好觀察。

同樣散點(diǎn)圖的繪制也很簡(jiǎn)單,我們只需要調(diào)用scatter函數(shù)傳入x和y的數(shù)組即可。

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

這里我們的x和y都是隨機(jī)分布,所以得到的結(jié)果是散亂沒(méi)有規(guī)律的點(diǎn)。

python matplotlib庫(kù)的基本使用

餅狀圖

最后我們來(lái)看下餅狀圖,餅狀圖也很常用,雖然也是反映的數(shù)據(jù)分布,但是它更多是體現(xiàn)某一個(gè)值占的比例。通過(guò)餅狀圖,我們可以很直觀地了解到這點(diǎn)。

我們可以傳入一個(gè)list進(jìn)入pie函數(shù),plot會(huì)根據(jù)list當(dāng)中值在總體的占比繪制餅狀圖。我們來(lái)看個(gè)很簡(jiǎn)單的例子:

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

得到的結(jié)果如下:

python matplotlib庫(kù)的基本使用

和之前的結(jié)果相比餅狀圖稍稍不清晰一些,因?yàn)樗m然用不同顏色區(qū)分了不同的區(qū)域的,但是我們很難直觀地看出來(lái)每一個(gè)區(qū)域分別代表什么。這個(gè)問(wèn)題是可以解決的,我們可以通過(guò)傳入一些參數(shù)和設(shè)定來(lái)讓它展示更多的信息,讓數(shù)據(jù)變得更加生動(dòng)以及清晰。

今天的文章到這里就結(jié)束了,如果喜歡本文的話,請(qǐng)來(lái)一波素質(zhì)三連,給我一點(diǎn)支持吧(關(guān)注、轉(zhuǎn)發(fā)、點(diǎn)贊)。

以上就是python matplotlib庫(kù)的基本使用的詳細(xì)內(nèi)容,更多關(guān)于python matplotlib的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 暴风影音| 智能型高压核相仪-自动开口闪点测试仪-QJ41A电雷管测试仪|上海妙定 | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 【黄页88网】-B2B电子商务平台,b2b平台免费发布信息网 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 云南成人高考网| 屏蔽服(500kv-超高压-特高压-电磁)-徐吉电气 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 钢托盘,钢制托盘,立库钢托盘,金属托盘制造商_南京飞天金属制品实业有限公司 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 闪电优家-卫生间防水补漏_酒店漏水渗水维修_防水堵漏公司 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | 美侍宠物-专注宠物狗及宠物猫训练|喂养|医疗|繁育|品种|价格 | 天长市晶耀仪表有限公司| 气动|电动调节阀|球阀|蝶阀-自力式调节阀-上海渠工阀门管道工程有限公司 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 车辆定位管理系统_汽车GPS系统_车载北斗系统 - 朗致物联 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 卫浴散热器,卫浴暖气片,卫生间背篓暖气片,华圣格浴室暖气片 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 清水混凝土修复_混凝土色差修复剂_混凝土色差调整剂_清水混凝土色差修复_河南天工 | 预制直埋蒸汽保温管-直埋管道-聚氨酯发泡保温管厂家 - 唐山市吉祥保温工贸有限公司 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 屏蔽泵厂家,化工屏蔽泵_维修-淄博泵业 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 洁净化验室净化工程_成都实验室装修设计施工_四川华锐净化公司 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 铁素体测量仪/检测仪/铁素体含量测试仪-苏州圣光仪器有限公司 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 杭州公司变更法人-代理记账收费价格-公司注销代办_杭州福道财务管理咨询有限公司 | 医养体检包_公卫随访箱_慢病随访包_家签随访包_随访一体机-济南易享医疗科技有限公司 | CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 通风天窗,通风气楼,屋顶通风天窗,屋顶通风天窗公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司 |