前述:Python程序設(shè)計(jì)可以利用多種方法實(shí)現(xiàn)對(duì)圖像和圖像的呈現(xiàn)和處理刽严,在這是利用Python3.x自帶的tkinter Canvas庫(kù)踩娘、turtle庫(kù)以及第三方的Matplotlib庫(kù)進(jìn)行圖形的繪制的常用方法笋敞。
一、tkinter庫(kù)的Canvas 圖形的繪制方法
Canvas是tkinter中的畫布控件,下面展示兩個(gè)表:
-
Canvas 畫布實(shí)例的主要屬性
屬性 意義 bg 背景色 fg 前景色 bitmap 背景位圖 image 底紋圖像 bd 邊框?qū)挘ㄏ袼兀?/td> with 寬度(像素) height 高度 (像素) -
Canvas畫布實(shí)例的主要繪圖方法
方法 功能 主要參數(shù) creat_arc() 給弧形和扇形 常用的參數(shù)除兩點(diǎn)位置外,還有start(初始化角度)和 extent(中止角度)戈擒。參數(shù)fill為填充色,outline 為輪廓線色 creat_image() 繪圖像 用參數(shù)file指向圖像文件艰毒,支持GIF(無(wú)動(dòng)畫)筐高、PNG等格式,不支持JPG格式 creat_line() 繪直線 兩點(diǎn)坐標(biāo)丑瞧。參數(shù)arrow 為箭頭樣式柑土,默認(rèn)為無(wú),F(xiàn)IRST或LAST分別表示箭頭在首或尾绊汹。參數(shù)dash為表示虛線樣式的元祖型參數(shù)稽屏。例如 dash(4,2) 表示連續(xù)4像素間隔2像素 create_oval() 繪橢圓 用左上角和右下角兩點(diǎn)的位置定位出矩形內(nèi)切橢圓 create_polygon() 繪多邊形 頂點(diǎn)位置的x和y值作為參數(shù) create_rectangle() 繪矩形 用左上角和右下角兩點(diǎn)的位置定位出矩形 create_text() 文本標(biāo)簽 顯示位置和text(文本內(nèi)容) delete() 刪除指定圖形 參數(shù)為指定圖形對(duì)象的名稱,全部刪除為ALL -
1.1西乖、Canvas繪圖的基本方法一:創(chuàng)建畫布和填充顏色
Canvas 畫布的坐標(biāo)原點(diǎn)在左上角狐榔,默認(rèn)單位是像素坛增,x軸向右為正,y軸向下為正荒叼。例如:在320x240的窗體上創(chuàng)建高200像素,寬280像素的畫布典鸡,并填充顏色
創(chuàng)建畫布和填充顏色from tkinter import * root = Tk() root.geometry('320x240') mycanvas = Canvas(root,bg='green',height=200,width=280) mycanvas.pack() btn1 = Button(root,text='關(guān)閉',command=root.destroy) btn1.pack() root.mainloop()
-
1.2被廓、Canvas繪圖的基本方法一:繪制圖形
在320x240的窗體上創(chuàng)建高200像素,寬300像素的畫布萝玷,鼠標(biāo)點(diǎn)擊畫布嫁乘,依次繪出:從(90,10)到(200,200)點(diǎn)的矩形;從(90,10)到(200,200)點(diǎn)的內(nèi)切橢圓并填充綠色;從(90,10)到(200,200)點(diǎn)的內(nèi)切扇形并填充粉紅色;連接(20,180)、(150,10)和(290,180) 三點(diǎn)形成藍(lán)色框線且無(wú)色填充的三角形球碉;從(10,105)到(290,105)點(diǎn)的紅色直線蜓斧;以(50,10)為起點(diǎn)用RGB"#123456"顏色繪制文本標(biāo)簽“我的畫布”。單擊“清空”按鈕刪除所有圖形睁冬,如下:
繪制圖形from tkinter import * root=Tk() root.title('繪制圖形') root.geometry('320x240') def draw(event): # 畫矩形 mycnavas.create_rectangle(90,10,200,200) # 畫橢圓挎春,填充顏色 mycnavas.create_oval(90,10,200,200,fill='green') # 畫扇形 mycnavas.create_arc(90,10,200,200,fill='pink') # 畫多邊形(三角形),前景為藍(lán)色豆拨,無(wú)填充色 mycnavas.create_polygon(10,180,145,10,290,180,outline='blue',fill='') # 畫直線 mycnavas.create_line(0,105,300,105,fill='red') # 寫文字直奋,顏色為十六進(jìn)制RGB字符串 mycnavas.create_text(50,10,text='我的畫布',fill='#123456') def delt(): mycnavas.delete(ALL) mycnavas = Canvas(root,width=300,height=200) mycnavas.pack() mycnavas.bind('<Button-1>',draw) # 畫布綁定鼠標(biāo)點(diǎn)擊事件 btnclear=Button(root,text='清空',command=delt) btnclear.pack() root.mainloop()
-
1.3、Canvas繪圖的基本方法一:呈現(xiàn)位圖圖像
Canvas畫布支持呈現(xiàn)位圖圖像文件施禾,文件的類型包括:GIF(無(wú)動(dòng)畫)脚线、PNG等格式,但不支持JPG格式弥搞。
在320x240的窗體上創(chuàng)建畫布邮绿,并呈現(xiàn)/Users/wangchong/Desktop/呵呵.png
圖像。效果如下:
呈現(xiàn)位圖圖像from tkinter import * root=Tk() root.title('呈現(xiàn)位圖圖像') root.geometry('320x240') mycanvas=Canvas(root) mycanvas.pack() photo=PhotoImage(file='/Users/wangchong/Desktop/呵呵.gif') # 我用的 Mac 電腦攀例,圖片的格式不要錯(cuò)船逮,否則會(huì)報(bào)錯(cuò)的 mycanvas.create_image(100,100,image=photo) root.mainloop()
-
1.4、Canvas繪圖的基本方法一:利用鼠標(biāo)事件繪圖
利用鼠標(biāo)左鍵移動(dòng)鼠標(biāo)事件粤铭,不斷讀取鼠標(biāo)當(dāng)前的位置傻唾,每次擴(kuò)張1個(gè)像素繪制橢圓點(diǎn),即可在畫布上留下鼠標(biāo)的軌跡承耿。例如:在320x240的窗體上創(chuàng)建畫布冠骄,并以藍(lán)色筆創(chuàng)建鼠標(biāo)畫板。效果如下:
利用鼠標(biāo)事件繪圖from tkinter import * root = Tk() def move(event): x = event.x y = event.y w.create_oval(x,y,x+1,y+1,fill='blue') w = Canvas(root,width=320,height=240) w.pack() w.bind('<B1-Motion>',move) root.mainloop()
其中加袋,按住鼠標(biāo)左鍵移動(dòng)的鼠標(biāo)事件<B1-Motion>綁定函數(shù)move(event),當(dāng)按住鼠標(biāo)左鍵移動(dòng)鼠標(biāo)時(shí)凛辣,即觸發(fā)讀取鼠標(biāo)當(dāng)前位置x=event.x,y=event.y,在點(diǎn)(x,y)與點(diǎn)(x+1,y+1)組成的矩形之間留下藍(lán)色橢圓點(diǎn)。
-
1.5职烧、Canvas畫布上圖型的繪制
利用鼠標(biāo)左鍵移動(dòng)鼠標(biāo)事件扁誓,不斷讀取鼠標(biāo)當(dāng)前的位置防泵,每次擴(kuò)張1個(gè)像素繪制橢圓點(diǎn),即可在畫布上蝗敢。
在320x240的窗體上創(chuàng)建畫布捷泞,并以藍(lán)色筆創(chuàng)建鼠標(biāo)畫板。如下:
Canvas畫布上圖型的繪制(鼠標(biāo)畫板)from tkinter import * root = Tk() def move(event): x = event.x y = event.y w.create_oval(x,y,x+1,y+1,fill='blue') w = Canvas(root,width=320,height=240) w.pack() w.bind('<B1-Motion>',move) root.mainloop()
其中寿谴,按住鼠標(biāo)左鍵移動(dòng)的鼠標(biāo)事件<B1-Motion>綁定函數(shù) move(event) 锁右,當(dāng)按住鼠標(biāo)左鍵并移動(dòng)鼠標(biāo)時(shí),即觸發(fā)讀取鼠標(biāo)當(dāng)前的位置 x=event.x,y=event.y讶泰,在點(diǎn)(x,y)與點(diǎn)(x+1,y+1)組成的矩形之間留下藍(lán)色的橢圓點(diǎn)咏瑟。
-
1.6、Canvas畫布上的函數(shù)圖形繪制
用create_line函數(shù)可以在畫布上繪制直線痪署,而隨著變量的變化码泞,用該方法連續(xù)繪制微直線即可得到函數(shù)的圖形。
例如:在窗體上創(chuàng)建320x240的畫布狼犯,以畫布中心為原點(diǎn)余寥,用紅色繪制帶箭頭的x和y坐標(biāo)軸,用藍(lán)色筆繪制正玄曲線y=sinx的函數(shù)圖形悯森。其中劈狐,x,y軸的放大倍數(shù)均為倍數(shù)均為40倍,即:x = 40t,t以0.01的步長(zhǎng)在-π~π
范圍內(nèi)變化取值呐馆。效果如下圖:
Canvas畫布上的函數(shù)圖形繪制from tkinter import * import math root = Tk() w = Canvas(root,width=320,height=240) w.pack() w0 = 160 # 半寬 h0 = 120 # 半高 # 畫紅色的坐標(biāo)軸線 w.create_line(0,120,320,120,fill="red",arrow=LAST) w.create_line(160,240,160,0,fill="red",arrow=LAST) # 標(biāo)題文字 w.create_text(w0+50,10,text='y=sin(x)') # x軸刻度 for i in range(-3,4): j=I*40 w.create_line(j+w0,h0,j+w0,h0-5,fill="red") w.create_text(j+w0,h0+5,text=str(i)) # y軸刻度 for i in range(-2,3): j=I*40 w.create_line(w0,j+h0,w0+5,j+h0,fill="red") w.create_text(w0-10,j+h0,text=str(-i)) # 計(jì)算x def x(t): x=t*40 # x軸放大40倍 x+=w0 # 平移x軸 return x # 計(jì)算y def y(t): y=math.sin(t)*40 # y軸放大40倍 y-=h0 # 平移y軸 y=-y # y軸值反向 return y # 連續(xù)繪制微置線 t=-math.pi while(t<math.pi): w.create_line(x(t),y(t),x(t+0.01),y(t+0.01),fill="blue") t+=0.01 root.mainloop()
無(wú)論函數(shù)如何復(fù)雜肥缔,以“分而治之”的計(jì)算思維原則,分別調(diào)用x(t)和y(t)函數(shù)取值繪制微直線汹来,即可最終獲得函數(shù)的圖形续膳。
二、turtle庫(kù)的圖形的繪制方法
turtle也是內(nèi)置庫(kù) Python 圖形繪制庫(kù)收班,其繪制方法更為簡(jiǎn)單坟岔,原理如同控制一只“小龜”以不同的方向和速度進(jìn)行位移而得到其運(yùn)動(dòng)的軌跡。turtle圖形繪制的主要方法如下表:
方法 | 功能 | 備注 |
---|---|---|
backward()或bk()或back() | 逆箭頭所指方向后退 | 參數(shù)為位移值 |
circle() | 畫圓 | 默認(rèn)參數(shù)為半徑摔桦,可添加參數(shù)extent(角度) 畫經(jīng)過這個(gè)角度的弧邻耕;可添加參數(shù)steps(n>=4的整數(shù))畫內(nèi)接n邊形,這兩個(gè)附加參數(shù)不能同時(shí)使用 |
clear() | 清楚所有圖形但不移動(dòng)光標(biāo)箭頭的位置 | --- |
color() | 設(shè)置或返回顏色 | 以元組形式同時(shí)返回或設(shè)置筆觸和填充顏色 |
done() | 繪圖完畢兄世,結(jié)束進(jìn)程 | --- |
dot() | 畫點(diǎn) | 參數(shù)為點(diǎn)的大小,可附加顏色參數(shù)鸥拧,如: dot(20,"blue") |
fillcolor() | 設(shè)置或返回填充顏色 | --- |
forward()或fd() | 向箭頭所指的方向前進(jìn) | 參數(shù)為位移值 |
goto()或setpos()或setposition() | 位移至某點(diǎn) | 參數(shù)為坐標(biāo) |
hideturtle()或ht() | 隱藏光標(biāo)箭頭 | --- |
home() | 返回原點(diǎn) | --- |
isdown() | 返回是否落筆 | --- |
isvisible() | 返回光標(biāo)箭頭顯示狀態(tài) | --- |
left()或lt() | 箭頭方向左轉(zhuǎn) | 參數(shù)為角度(不是弧度) |
pencolor() | 設(shè)置或返回筆觸顏色 | --- |
pendown()或pd()down() | 落筆 | --- |
pensize()或width() | 筆觸粗細(xì) | --- |
penup()或pu()或up() | 抬筆 | --- |
position()或pos() | 返回當(dāng)前位置坐標(biāo) | --- |
reset() | 清楚所有圖形并將光標(biāo)箭頭位置于原點(diǎn) | --- |
right() 或 rt() | 箭頭方向右轉(zhuǎn) | 參數(shù)為角度(不是弧度) |
setup() | 初始畫布窗口大小和位置 | --- |
setx() | 水平位移至x軸坐標(biāo) | --- |
sety() | 垂直位移至 y 軸坐標(biāo) | --- |
showturtle() 或 st() | 顯示光標(biāo)箭頭 | --- |
speed() | 位移速度 | --- |
towards() | 返回當(dāng)前方向與 箭頭方向之間的角度 | --- |
undo() | 撤銷(擦除)最后一步 | --- |
write() | 繪制文本標(biāo)簽 | 默認(rèn)參數(shù)為文本,可選參數(shù)為move,表示是否為動(dòng)畫(Ture/False) |
-
2.1富弦、turtle繪圖的基本方法
2.1.1、坐標(biāo)位置和方向
setup()方法用于初始化畫布窗口大小和位置济似,參數(shù)包括畫布窗口寬、畫布窗口高碱屁、窗口在屏幕的水平起始位置和窗口在屏幕的垂直起始位置蛾找。例如:setup(640,480,300,300)表示在桌面屏幕(300,300)位置開始創(chuàng)建640x480大小的畫布窗體打毛。用turtle創(chuàng)建的畫布與Canvas不同,其原點(diǎn)(0俩功,0)在畫布的中心幻枉,坐標(biāo)方向與數(shù)學(xué)定義一致,向右诡蜓,向上為正熬甫。2.1.2、畫筆 ??
方法color()用于設(shè)置或返回畫筆的顏色蔓罚。例如: color('red') 將顏色設(shè)為紅色椿肩。也可用fillcolor()設(shè)置或返回填充顏色,或用pencolor()方法設(shè)置或返回筆觸顏色豺谈。方法pensize()或width()用于設(shè)置筆觸的粗細(xì)郑象,例如:pensize(5)設(shè)置筆觸為5像素粗。2.1.3茬末、畫筆控制與運(yùn)動(dòng)
方法penup()厂榛、pu()或up()為抬筆,當(dāng)筆觸移動(dòng)時(shí)不留墨跡丽惭;方法penward()击奶、pd()或down()為落筆,當(dāng)筆觸移動(dòng)時(shí)會(huì)留下墨跡责掏。
畫筆的移動(dòng)方向的方法有:向箭頭所指的方向前進(jìn) forward()正歼、fd()或lt();逆箭頭所指方向后退backward()、bk()或back()拷橘。
畫筆的原地轉(zhuǎn)角方法有:箭頭方向左轉(zhuǎn)left()或lt();箭頭方向右轉(zhuǎn)right()或rt()局义。
位移至某點(diǎn)的方法:goto(),setpos()或setposition()喜爷;畫圓的方法:circle();返回原點(diǎn)的方法:home()。
位移速度方法speed(),其取值返回從慢到快為1~10.注意:取0為最快(無(wú)移動(dòng)過程萄唇,直接顯示目標(biāo)結(jié)果)檩帐。
繪圖完畢通常用方法done()結(jié)束進(jìn)程。2.1.4另萤、文字
輸出文字標(biāo)簽用write()方法湃密,默認(rèn)參數(shù)為輸出文本,可選參數(shù)有:對(duì)齊方式 alihn(left,center,right),font元祖型字體設(shè)置(字體泛源,字號(hào)达箍,字形)铺厨。-
例如:從原點(diǎn)出發(fā)至坐標(biāo)點(diǎn)(-100,100)解滓,改為紅色洼裤,沿光標(biāo)指向(默認(rèn)方向?yàn)樗较蛴?前進(jìn)200像素腮鞍,改為藍(lán)色缕减,后退100像素桥狡,以動(dòng)畫模式輸出文字(黑體裹芝,36磅嫂易,斜體)怜械。效果如下:
turtle繪圖from turtle import * setup(640,480,300,300) reset() pensize(5) goto(-100,100) color('red') fd(200) color('blue') bk(100) write('turtle繪圖',move=True,font=('黑體',36,'italic')) done()
-
2.2、turtle圖形繪圖
-
簡(jiǎn)單形狀圖形
用循環(huán)結(jié)構(gòu)可自動(dòng)重復(fù)繪制步驟得出規(guī)則圖形蹭越。
例如:以5像素筆觸重復(fù)執(zhí)行“前進(jìn)100像素响鹃,右轉(zhuǎn)60度”的操作工6次买置,繪制紅色正六邊形了忿项;再用circle()方法畫半徑為60像素的紅色圓內(nèi)正接六邊形倦卖;然后抬筆移動(dòng)至(-50,200) 點(diǎn)落筆椿争,重復(fù)執(zhí)行“右轉(zhuǎn)144度秦踪,前進(jìn)400像素”的操作共5次椅邓,繪制五角星景馁。如下效果:
簡(jiǎn)單形狀圖形from turtle import * reset() pensize(5) #畫正六邊形 合住,每步右轉(zhuǎn)60度 for i in range(6): fd(100) right(60) #用circle方法畫正六邊形(半徑為 60 像素的圓內(nèi)正接六邊形 ) color('red') circle(60,steps=6) #抬筆移動(dòng)位置 up() goto(-50,200) down() # 畫五角星透葛,每步右轉(zhuǎn)144度 for i in range(5): right(144) fd(400) done()
-
三僚害、Matplotlib庫(kù)的圖形的繪制方法
Matplotlib庫(kù)是用于科學(xué)計(jì)算數(shù)據(jù)可視化的常見Python第三方模塊萨蚕。它借鑒了許多Matlab中的函數(shù)岳遥,可以輕松繪制高質(zhì)量的線條圖寒随、直方圖妻往、餅圖讯泣、散點(diǎn)以及誤差線圖等二維圖形好渠,也可以繪制三維圖像拳锚,還可以方便地設(shè)定圖形線條的類型、顏色匾荆、粗細(xì)以及字體的大小等屬性牙丽。
-
3.1烤芦、環(huán)境安裝與基本方法
使用 Matplotlib 繪圖构罗,需要先安裝導(dǎo)入 numpy 科學(xué)計(jì)算模塊庫(kù)绰播。如果不想經(jīng)歷繁瑣的下載安裝過程蠢箩,也可使用Anaconda 等集成安裝的方式來(lái)搭建科學(xué)計(jì)算環(huán)境谬泌。通常掌实,二維圖形的繪制是導(dǎo)入 Matplotlib的pyplot函數(shù)來(lái)完成的贱鼻,首先邻悬,導(dǎo)入pyplot子庫(kù)語(yǔ)句:import Matplotlib.pyplot as plt
然后用
plt.figure(figsize=(w,h),dpi=h)
創(chuàng)建一個(gè)繪圖對(duì)象父丰,并設(shè)置對(duì)象的寬度比例w和高度比例h蛾扇。例如:
plt.figure(figsize=(4,3),dpi=200)
為創(chuàng)建一個(gè)4:3的每英寸200點(diǎn)分別率的繪圖對(duì)象镀首,調(diào)用plt.plot()方法在繪圖對(duì)象中進(jìn)行繪圖蘑斧。
pyplot()方法也可通過調(diào)用 subplot方法增加子圖竖瘾。subplot()方法通常包含三個(gè)參數(shù):共有幾行捕传、幾列庸论、本子圖是第幾個(gè)子視圖聂示。例如,p1=plt.subplot(211)或p1=plt.subplot(2,1,1)表示創(chuàng)建第2行第1列的子視圖鱼喉,p1為第一個(gè)子圖扛禽。
數(shù)據(jù)可使用列表給出,plot()方法的參數(shù)通常包括x豆巨、y軸兩個(gè)變量及圖形的顏色往扔、線型瓤球、數(shù)據(jù)點(diǎn)標(biāo)記等卦羡。
常用的顏色字符有:'r'(紅色绿饵,red)拟赊、'g'(綠色吸祟,green)屋匕、'b'(藍(lán)色过吻,blue)蔗衡、'c'(青色绞惦,cyan)济蝉、'm'(品紅,magenta)雷酪、'y'(黃色哥力,yellow)墩弯、'k'(黑色渔工,black)引矩、'w'(白色旺韭,white)等区端。
常見的線型字符有:'_'
(直線)织盼、'_ _'
(虛線)沥邻、':'
(點(diǎn)線)谋国、'_ .'
(點(diǎn)劃線)等芦瘾。
常用的描點(diǎn)標(biāo)記有:'.'
(點(diǎn))近弟、'0'
(圓圈)祷愉、's'
(方塊)二鳄、'^'
(三角形)订讼、'x'
(叉)欺殿、'*'
(五角星)脖苏、'+'
(加號(hào)) 等棍潘。
例如:plt.plot(x,y,'--*r') 表示x和y兩個(gè)變量繪制紅色(r)虛線(--)亦歉,以星號(hào)(*)作為描點(diǎn)標(biāo)記鳍徽。
在同一繪制對(duì)象中可用plot()方法同時(shí)繪制多個(gè)圖形阶祭,例如:
plt.plot(x,w,'--*t',x,z,'-.+g') 表示在同一繪制對(duì)象中同時(shí)呈現(xiàn)x-w濒募、x-y和x-z三組變量的圖形瑰剃,并且分別以藍(lán)色實(shí)線無(wú)描點(diǎn)晌姚、紅色虛線星描點(diǎn)挥唠、綠色點(diǎn)畫線加號(hào)描點(diǎn)表示宝磨。 方法plot()可使用label參數(shù)標(biāo)注圖例和公式。標(biāo)注公式時(shí)世囊,字符串以“$”開頭和結(jié)尾株憾,“^{}”表示上標(biāo)号胚,“cdot”表示乘號(hào)(點(diǎn))猫胁,在可能出現(xiàn)歧義的字符串時(shí)用“\”作為轉(zhuǎn)義符號(hào)弃秆。
注意:該字符串是以半角雙引號(hào)界定的菠赚。例如:
label="Sy=e^(-x) \cdot \cos(2\pi x)$"
可表示數(shù)公式 y=(e-x)cos(2πx)衡查。有l(wèi)abel標(biāo)注時(shí)拌牲,要用繪圖對(duì)象.legend()將其顯示出來(lái)塌忽。
當(dāng)需要在圖上標(biāo)注文本時(shí)土居,可以使用下列函數(shù)擦耀。
text(): 在指定坐標(biāo)位置輸出文字
xlabel(),ylabel():顯示坐標(biāo)軸標(biāo)簽文字埂奈。
title():顯示標(biāo)題文字
需要特別指出的是账磺,在Matplotlib 默認(rèn)設(shè)置中沒有對(duì)應(yīng)中文的支持垮抗,如果需要使用中文文本標(biāo)注冒版,應(yīng)在Matplotlib 的字體管理器 font_manger 中專門設(shè)置辞嗡。
例如:將個(gè)性化字體對(duì)象 myfont設(shè)為華文宋體:myfont = Matplotlib.font_manger.FontProperties(fname='C:/windows/Fonts/STSONG.TTF')
并在輸出文字時(shí)续室,使用該字體屬性參數(shù):fontproperties=myfont挺狰。
由于字體的變化丰泊,有時(shí)輸出負(fù)號(hào)會(huì)影響(顯示不出負(fù)號(hào)瞳购,本例并不涉及)学赛,可預(yù)設(shè)Matplotlib.rcParams['axes.unicode_minus']=False解決罢屈。
例如:在同一繪圖對(duì)象中缠捌,利用不同顏色和標(biāo)注繪制折線圖性曼月。效果如下:import numpy as np import Matplotlib import Matplotlib.pyplot as plt # myfont = Matplotlib.font_manger.FontProperties\(fname='/Users/Fonts/STSONG.TTF') matplotlib.rcParams['axes.unicode_minus'] = False x=[0,1,2,4,5,6] w=[3,2,5,2,3,2] y=[1,2,3,2,4,1] z=[1,2,3,4,5,6] plt.plot(x,w,'b',x,y,'--*r',x,z,'-.+g') plt.xlabel("x軸",fontproperties=myfont) plt.ylabel("w乙嘀、y虎谢、z軸",fontproperties=myfont) plt.title("折線圖",fontsize=20,fontproperties=myfont) plt.show
-
3.2婴噩、二維函數(shù)圖形繪制
二維函數(shù)圖形的繪制可調(diào)用 numpy.linspace()方法几莽,先生成數(shù)據(jù)系列章蚣,再用 plot() 方法繪圖究驴。通式為:
numpy.linspace(start,stop,num=50,endpoint=True,restep=False)
其中洒忧,參數(shù)依次為自變量起點(diǎn)熙侍、終點(diǎn)蛉抓、生成數(shù)據(jù)點(diǎn)數(shù)巷送、是否包括終點(diǎn)笑跛、是否返回間隔飞蹂。
例如:在同一繪圖對(duì)象中陈哑,分別以紅色實(shí)線和藍(lán)色點(diǎn)狀線繪出x在-1.7~1.7之間變化的函數(shù)圖形(100個(gè)采樣點(diǎn))惊窖,并標(biāo)注其圖例和對(duì)應(yīng)公式:y=3x^3-3x^2+4sin(x) y=-3x^3-3x^2+4sin(x)
效果如下:
import numpy as np import Matplotlib.pyplot as plt x = np.linspace(-1.7,1.7,100) plt.plot(x,2*x**3-3*x**2+4*np.sin(x),"r",label="$y=3x^{3}-3x^{2}+4sin(x)$") plt.plot(x,-3*x**3-3*x**2+4*np.sin(x),"b.",label="$y=3x^{3}-3x^{2}+4sin(x)$") plt.legend() plt.show()
函數(shù)圖形的繪制也可調(diào)用numpy.arange()方法返回?cái)?shù)據(jù)系列爬坑,再用plot()方法繪圖盾计。通式為:
numpy.arange([start],stop[,step])