Python Matplotlib作為一種可視化的工具,可以利用其可視化的應(yīng)用,去做到繪制圖形,比如可以利用其Matplotlib去進(jìn)行繪制圖形,具體的操作方法要做到什么樣呢?下面就給大家詳細(xì)解答下。
前言
Matplotlib可能是Python 2D-繪圖領(lǐng)域使用最廣泛的套件。它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式。這里將會(huì)探索使用matplotlib庫(kù)實(shí)現(xiàn)簡(jiǎn)單的圖形繪制。
一、簡(jiǎn)單的正弦函數(shù)與余弦函數(shù)
是取得正弦函數(shù)和余弦函數(shù)的值:
X是一個(gè)numpy數(shù)組,包含了從?π到+π等間隔的256個(gè)值。C和S則分別是這256個(gè)值對(duì)應(yīng)的余弦和正弦函數(shù)值組成的numpy數(shù)組。
X=np.linspace(-np.pi,np.pi,256,endpoint=True) C,S=np.cos(X),np.sin(X)
完整代碼如下
import numpy as np import matplotlib.pyplot as plt X=np.linspace(-np.pi,np.pi,256,endpoint=True) C,S=np.cos(X),np.sin(X) #繪制并顯示圖形 plt.plot(X,C) plt.plot(X,S) plt.show()
二、進(jìn)階版正弦函數(shù)與余弦函數(shù)
上面我們學(xué)習(xí)了簡(jiǎn)單的正弦函數(shù)與余弦函數(shù),接下來(lái)我們將精益求精,改變顏色與粗細(xì),設(shè)置記號(hào),調(diào)整邊框等。
1.改變顏色與粗細(xì)
我們以藍(lán)色和紅色分別表示余弦和正弦函數(shù),而后將線條變粗一點(diǎn)。接下來(lái),我們?cè)谒椒较蚶煲幌抡麄€(gè)圖。
代碼如下(示例):
figure(figsize=(10,6),dpi=80) plot(X,C,color="blue",linewidth=2.5,linestyle="-") plot(X,S,color="red",linewidth=2.5,linestyle="-")
2.設(shè)置圖片邊界
代碼如下(示例):
xmin,xmax=X.min(),X.max() dx=(xmax-xmin)*0.2 xlim(xmin-dx,xmax+dx)
3.設(shè)置記號(hào)
我們討論正弦和余弦函數(shù)的時(shí)候,通常希望知道函數(shù)在±π和±π2的值。
xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi]) yticks([-1,0,+1])
4.設(shè)置記號(hào)的標(biāo)簽
我們可以把3.142當(dāng)做是π,但畢竟不夠精確。當(dāng)我們?cè)O(shè)置記號(hào)的時(shí)候,我們可以同時(shí)設(shè)置記號(hào)的標(biāo)簽。注意這里使用了LaTeX。
xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi], [r'$-pi$',r'$-pi/2$',r'$0$',r'$+pi/2$',r'$+pi$']) yticks([-1,0,+1], [r'$-1$',r'$0$',r'$+1$'])
5.設(shè)置X,Y軸
ax=gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data',0)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data',0))
6.完整代碼
#導(dǎo)入matplotlib的所有內(nèi)容(nympy可以用np這個(gè)名字來(lái)使用) from pylab import* #創(chuàng)建一個(gè)8*6點(diǎn)(point)的圖,并設(shè)置分辨率為80 figure(figsize=(8,6),dpi=80) #創(chuàng)建一個(gè)新的1*1的子圖,接下來(lái)的圖樣繪制在其中的第1塊(也是唯一的一塊) subplot(1,1,1) X=np.linspace(-np.pi,np.pi,256,endpoint=True) C,S=np.cos(X),np.sin(X) #繪制余弦曲線,使用藍(lán)色的、連續(xù)的、寬度為1(像素)的線條 plot(X,C,color="blue",linewidth=1.0,linestyle="-") #繪制正弦曲線,使用綠色的、連續(xù)的、寬度為1(像素)的線條 plot(X,S,color="green",linewidth=1.0,linestyle="-") #設(shè)置橫軸的上下限 xlim(-4.0,4.0) #設(shè)置橫軸記號(hào) xticks(np.linspace(-4,4,9,endpoint=True)) #設(shè)置縱軸的上下限 ylim(-1.0,1.0) #設(shè)置縱軸記號(hào) yticks(np.linspace(-1,1,5,endpoint=True)) #以分辨率72來(lái)保存圖片 #savefig("exercice_2.png",dpi=72) #設(shè)置顏色與粗細(xì) figure(figsize=(10,6),dpi=80) plot(X,C,color="blue",linewidth=2.5,linestyle="-") plot(X,S,color="red",linewidth=2.5,linestyle="-") #設(shè)置邊框 xmin,xmax=X.min(),X.max() dx=(xmax-xmin)*0.2 xlim(xmin-dx,xmax+dx) #設(shè)置記號(hào) xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi]) yticks([-1,0,+1]) #設(shè)置記號(hào)的標(biāo)簽 xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi], [r'$-pi$',r'$-pi/2$',r'$0$',r'$+pi/2$',r'$+pi$']) yticks([-1,0,+1], [r'$-1$',r'$0$',r'$+1$']) #設(shè)置xy軸 ax=gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data',0)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data',0)) #在屏幕上顯示 show()
最終效果
三、繪制簡(jiǎn)單的折線圖
折線圖是一種將數(shù)據(jù)點(diǎn)按照順序連起來(lái)的圖形,可以體現(xiàn)變量y隨變量x的變化情況。Matplotlib提供了plot()函數(shù)繪制折線圖,其語(yǔ)法格式如下:
plt.plot(*args,**kwargs)
常用參數(shù)及說(shuō)明如下:
x、y:分別表示x軸和y軸對(duì)應(yīng)的數(shù)據(jù),接收列表類型參數(shù)
color:表示折線的顏色
marker:表示折線上點(diǎn)的類型,有“.”、“o”、“v”等等類型
linestyle:表示折線的類型,默認(rèn)為“-”,表示實(shí)線,設(shè)置為“--”表示長(zhǎng)虛線,設(shè)置為“-.”表示點(diǎn)線,設(shè)置為“:”表示點(diǎn)虛線
linewidth:表示折線的粗細(xì)
alpha:表示點(diǎn)的透明度,接收0~1之間的小數(shù)
下面我們將以某地區(qū)周一到周日平均溫度變化折線圖為例,具體的學(xué)習(xí)了解折線圖的繪制。
import matplotlib.pyplot as plt plt.figure(figsize=(10,8)) #周一到周日平均溫度數(shù)據(jù) plt.plot([1,2,3,4,5,6,7],[12,11,11,13,12,10,10]) plt.show()
效果如下:
我們可以給圖表添加一些標(biāo)簽和圖例,讓圖表更加清晰好看,具體方法如下:
plt.title():指定當(dāng)前圖表的標(biāo)題,包括名稱、位置、顏色、字體大小等
plt.xlabel():指定當(dāng)前圖表x軸的名稱、位置、顏色、字體大小等
plt.ylabel():指定當(dāng)前圖表y軸的名稱、位置、顏色、字體大小等
plt.xlim():指定當(dāng)前圖表x軸的范圍
plt.ylim():指定當(dāng)前圖表y軸的范圍
plt.xticks():指定當(dāng)前圖表x軸刻度
plt.yticks():指定當(dāng)前圖表y軸刻度
import matplotlib.pyplot as plt #設(shè)置支持中文 plt.rcParams['font.family']=['SimHei'] plt.figure(figsize=(10,8)) plt.plot([1,2,3,4,5,6,7],[12,11,11,13,12,10,10],linestyle="-",marker=".") plt.xlabel("時(shí)間") plt.ylabel("溫度") plt.yticks([i for i in range(20)][::5]) plt.show()
效果如下:
總結(jié)
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128432.html
摘要:概述是使用開(kāi)發(fā)的一個(gè)繪圖庫(kù),是界進(jìn)行數(shù)據(jù)可視化的首選庫(kù)。可以通過(guò)圖形示例來(lái)快速瀏覽所有支持的圖形。最后,調(diào)用把繪制好的圖形顯示出來(lái)。對(duì)應(yīng)于三個(gè)參數(shù),表示行,表示列,表示位置。因此,表示在圖表中總共有個(gè)圖形,當(dāng)前新增的圖形添加到位置。 showImg(https://segmentfault.com/img/bV6EPD?w=542&h=130); 概述 Matplotlib 是使用 P...
摘要:?jiǎn)栴}描述繪制函數(shù)上的點(diǎn),請(qǐng)從以下選項(xiàng)中選出你認(rèn)為正確的答案正確答案第題條形圖的繪制知識(shí)點(diǎn)描述繪制條形圖。 僅需10道題輕松掌握Matplotlib圖形處理 | P...
摘要:之成為圖像處理任務(wù)的最佳選擇,是因?yàn)檫@一科學(xué)編程語(yǔ)言日益普及,并且其自身免費(fèi)提供許多最先進(jìn)的圖像處理工具。該庫(kù)包含基本的圖像處理功能,包括點(diǎn)操作使用一組內(nèi)置卷積內(nèi)核進(jìn)行過(guò)濾以及顏色空間轉(zhuǎn)換。圖像處理系統(tǒng)有時(shí)被稱為圖像處理的瑞士軍刀。 showImg(https://segmentfault.com/img/remote/1460000019442221);編譯:張秋玥、小七、蔣寶尚 本...
摘要:微積分微積分的課程我們也同樣是推薦和的課程。還有一個(gè)斯坦福大學(xué)的統(tǒng)計(jì)學(xué)習(xí)入門英文字幕相當(dāng)不錯(cuò)。所以,除了繪制數(shù)學(xué)圖形外,學(xué)習(xí)數(shù)學(xué)就應(yīng)該完全與編程有機(jī)結(jié)合。 無(wú)論是三大數(shù)學(xué)軟件Matlab(通信、控制等工程例外)、Maple、Mathematica,還是三大統(tǒng)計(jì)軟件Spass、Stata、SAS,這些可視化的軟件本身就是編程的一個(gè)體現(xiàn),它們?cè)谝欢ǔ潭壬辖档土宋覀兪褂脭?shù)學(xué)的門檻,但另一方面...
摘要:當(dāng)數(shù)據(jù)發(fā)生變化時(shí),這種演變過(guò)程隨之發(fā)生。是一種統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布的情況。 showImg(https://segmentfault.com/img/bVbnkP1?w=751&h=558); python相關(guān) 基礎(chǔ)概念 數(shù)據(jù):離散的,客觀事實(shí)的數(shù)字表示 信息:處理后的數(shù)據(jù),為實(shí)際問(wèn)題提供答案 - 為數(shù)據(jù)提供一種關(guān)系或一個(gè)關(guān)聯(lián)后,數(shù)據(jù)就成了信...
閱讀 956·2023-01-14 11:38
閱讀 936·2023-01-14 11:04
閱讀 787·2023-01-14 10:48
閱讀 2157·2023-01-14 10:34
閱讀 1005·2023-01-14 10:24
閱讀 895·2023-01-14 10:18
閱讀 545·2023-01-14 10:09
閱讀 622·2023-01-14 10:02