1,xlable,ylable設(shè)置x,y軸的標(biāo)題文字。

巴青網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,巴青網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為巴青上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的巴青做網(wǎng)站的公司定做!
2,title設(shè)置標(biāo)題。
3,xlim,ylim設(shè)置x,y軸顯示范圍。
plt.show()顯示繪圖窗口,通常情況下,show()會(huì)阻礙程序運(yùn)行,帶-wthread等參數(shù)的環(huán)境下,窗口不會(huì)關(guān)閉。
plt.saveFig()保存圖像。
面向?qū)ο罄L圖
1,當(dāng)前圖表和子圖可以用gcf(),gca()獲得。
subplot()繪制包含多個(gè)圖表的子圖。
configure subplots,可調(diào)節(jié)子圖與圖表邊框距離。
可以通過(guò)修改配置文件更改對(duì)象屬性。
圖標(biāo)顯示中文
1,在程序中直接指定字體。
2, 在程序開(kāi)始修改配置字典reParams.
3,修改配置文件。
Artist對(duì)象
1,圖標(biāo)的繪制領(lǐng)域。
2,如何在FigureCanvas對(duì)象上繪圖。
3,如何使用Renderer在FigureCanvas對(duì)象上繪圖。
FigureCanvas和Render處理底層圖像操作,Artist處理高層結(jié)構(gòu)。
分為簡(jiǎn)單對(duì)象和容器對(duì)象,簡(jiǎn)單的Aritist是標(biāo)準(zhǔn)的繪圖元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器類(lèi)型包含許多簡(jiǎn)單的的 Aritist對(duì)象,使他們構(gòu)成一個(gè)整體,例如Axis,Axes,Figure等。
直接創(chuàng)建Artist對(duì)象進(jìn)項(xiàng)繪圖操作步奏:
1,創(chuàng)建Figure對(duì)象(通過(guò)figure()函數(shù),會(huì)進(jìn)行許多初始化操作,不建議直接創(chuàng)建。)
2,為Figure對(duì)象創(chuàng)建一個(gè)或多個(gè)Axes對(duì)象。
3,調(diào)用Axes對(duì)象的方法創(chuàng)建各類(lèi)簡(jiǎn)單的Artist對(duì)象。
Figure容器
如何找到指定的Artist對(duì)象。
1,可調(diào)用add_subplot()和add_axes()方法向圖表添加子圖。
2,可使用for循環(huán)添加?xùn)鸥瘛?/p>
3,可通過(guò)transform修改坐標(biāo)原點(diǎn)。
Axes容器
1,patch修改背景。
2,包含坐標(biāo)軸,坐標(biāo)網(wǎng)格,刻度標(biāo)簽,坐標(biāo)軸標(biāo)題等內(nèi)容。
3,get_ticklabels(),,get-ticklines獲得刻度標(biāo)簽和刻度線(xiàn)。
1,可對(duì)曲線(xiàn)進(jìn)行插值。
2,fill_between()繪制交點(diǎn)。
3,坐標(biāo)變換。
4,繪制陰影。
5,添加注釋。
1,繪制直方圖的函數(shù)是
2,箱線(xiàn)圖(Boxplot)也稱(chēng)箱須圖(Box-whisker Plot),是利用數(shù)據(jù)中的五個(gè)統(tǒng)計(jì)量:最小值、第一四分位
數(shù)、中位數(shù)、第三四分位數(shù)與最大值來(lái)描述數(shù)據(jù)的一種方法,它可以粗略地看出數(shù)據(jù)是否具有對(duì)稱(chēng)性以及分
布的分散程度等信息,特別可以用于對(duì)幾個(gè)樣本的比較。
3,餅圖就是把一個(gè)圓盤(pán)按所需表達(dá)變量的觀(guān)察數(shù)劃分為若干份,每一份的角度(即面積)等價(jià)于每個(gè)觀(guān)察
值的大小。
4,散點(diǎn)圖
5,QQ圖
低層繪圖函數(shù)
類(lèi)似于barplot(),dotchart()和plot()這樣的函數(shù)采用低層的繪圖函數(shù)來(lái)畫(huà)線(xiàn)和點(diǎn),來(lái)表達(dá)它們?cè)陧?yè)面上放置的位置以及其他各種特征。
在這一節(jié)中,我們會(huì)描述一些低層的繪圖函數(shù),用戶(hù)也可以調(diào)用這些函數(shù)用于繪圖。首先我們先講一下R怎么描述一個(gè)頁(yè)面;然后我們講怎么在頁(yè)面上添加點(diǎn),線(xiàn)和文字;最后講一下怎么修改一些基本的圖形。
繪圖區(qū)域與邊界
R在繪圖時(shí),將顯示區(qū)域劃分為幾個(gè)部分。繪制區(qū)域顯示了根據(jù)數(shù)據(jù)描繪出來(lái)的圖像,在此區(qū)域內(nèi)R根據(jù)數(shù)據(jù)選擇一個(gè)坐標(biāo)系,通過(guò)顯示出來(lái)的坐標(biāo)軸可以看到R使用的坐標(biāo)系。在繪制區(qū)域之外是邊沿區(qū),從底部開(kāi)始按順時(shí)針?lè)较蚍謩e用數(shù)字1到4表示。文字和標(biāo)簽通常顯示在邊沿區(qū)域內(nèi),按照從內(nèi)到外的行數(shù)先后顯示。
添加對(duì)象
在繪制的圖像上還可以繼續(xù)添加若干對(duì)象,下面是幾個(gè)有用的函數(shù),以及對(duì)其功能的說(shuō)明。
?points(x, y, ...),添加點(diǎn)
?lines(x, y, ...),添加線(xiàn)段
?text(x, y, labels, ...),添加文字
?abline(a, b, ...),添加直線(xiàn)y=a+bx
?abline(h=y, ...),添加水平線(xiàn)
?abline(v=x, ...),添加垂直線(xiàn)
?polygon(x, y, ...),添加一個(gè)閉合的多邊形
?segments(x0, y0, x1, y1, ...),畫(huà)線(xiàn)段
?arrows(x0, y0, x1, y1, ...),畫(huà)箭頭
?symbols(x, y, ...),添加各種符號(hào)
?legend(x, y, legend, ...),添加圖列說(shuō)明
ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)??
創(chuàng)建畫(huà)布和子圖。
nrows和ncols表示將畫(huà)布分割成幾行幾列 ,
sharex和sharey表是共用xy軸的設(shè)置。
squeeze? bool
a.默認(rèn)參數(shù)為T(mén)rue:額外的維度從返回的Axes(軸)對(duì)象中擠出,對(duì)于N*1或1*N個(gè)子圖,返回一個(gè)1維數(shù)組,對(duì)于N*M,N1和M1返回一個(gè)2維數(shù)組。
b.為False,不進(jìn)行擠壓操作:返回一個(gè)元素為Axes實(shí)例的2維數(shù)組,即使它最終是1x1。
subplot_kw:字典類(lèi)型,可選參數(shù)。把字典的關(guān)鍵字傳遞給add_subplot()來(lái)創(chuàng)建每個(gè)子圖。
subplot_kw:字典類(lèi)型,可選參數(shù)。把字典的關(guān)鍵字傳遞給add_subplot()來(lái)創(chuàng)建每個(gè)子圖。
gridspec_kw:字典類(lèi)型,可選參數(shù)。把字典的關(guān)鍵字傳遞給GridSpec構(gòu)造函數(shù)創(chuàng)建子圖放在網(wǎng)格里(grid)。
**fig_kw:把所有詳細(xì)的關(guān)鍵字參數(shù)傳給figure()函數(shù)。
可見(jiàn)你沒(méi)有辦法單獨(dú)設(shè)置某個(gè)子圖的ax的。
python中fig,ax=plt.subplots是python一種subplot可以畫(huà)出很多子圖的圖片的方法。
1、載入要用的工具包,代碼輸入import matplotlib.pyplot as plt,from skimage import data,color。
2、接著生成原始數(shù)據(jù)與圖片,定義圖片內(nèi)容的代碼:
img = data.coffee()
hsv = color.rgb2hsv(img)
fig, axes = plt.subplots(2, 2, figsize=(7, 6))
ax0, ax1, ax2, ax3 = axes.ravel()
3、依次排列輸入代碼:
ax0.imshow(img)
ax1.imshow(hsv[:, :, 0], cmap=plt.cm.gray)
ax2.imshow(hsv[:, :, 1], cmap=plt.cm.gray)
ax3.imshow(hsv[:, :, 2], cmap=plt.cm.gray)
fig.tight_layout()
4、同樣,需要采用以下指令顯示圖片,輸入代碼為plt.show()。
5、最后,就可以看到呈現(xiàn)的效果圖,就是一種subplot可以畫(huà)出很多子圖的圖片的方法,這樣就可以解決問(wèn)題了。
matplotlib 是python最著名的繪圖庫(kù),它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地行制圖。而且也可以方便地將它作為繪圖控件,嵌入GUI應(yīng)用程序中。
它的文檔相當(dāng)完備,并且Gallery頁(yè)面中有上百幅縮略圖,打開(kāi)之后都有源程序。因此如果你需要繪制某種類(lèi)型的圖,只需要在這個(gè)頁(yè)面中瀏覽/復(fù)制/粘貼一下,基本上都能搞定。
在Linux下比較著名的數(shù)據(jù)圖工具還有g(shù)nuplot,這個(gè)是免費(fèi)的,Python有一個(gè)包可以調(diào)用gnuplot,但是語(yǔ)法比較不習(xí)慣,而且畫(huà)圖質(zhì)量不高。
而?Matplotlib則比較強(qiáng):Matlab的語(yǔ)法、python語(yǔ)言、latex的畫(huà)圖質(zhì)量(還可以使用內(nèi)嵌的latex引擎繪制的數(shù)學(xué)公式)。
本文目錄
1.?Matplotlib.pyplot快速繪圖
2.?面向?qū)ο螽?huà)圖
3.?Matplotlib.pylab快速繪圖
4.?在圖表中顯示中文
5.?對(duì)LaTeX數(shù)學(xué)公式的支持
6.?對(duì)數(shù)坐標(biāo)軸
7.?學(xué)習(xí)資源
Matplotlib.pyplot快速繪圖
快速繪圖和面向?qū)ο蠓绞嚼L圖
matplotlib實(shí)際上是一套面向?qū)ο蟮睦L圖庫(kù),它所繪制的圖表中的每個(gè)繪圖元素,例如線(xiàn)條Line2D、文字Text、刻度等在內(nèi)存中都有一個(gè)對(duì)象與之對(duì)應(yīng)。
為了方便快速繪圖matplotlib通過(guò)pyplot模塊提供了一套和MATLAB類(lèi)似的繪圖API,將眾多繪圖對(duì)象所構(gòu)成的復(fù)雜結(jié)構(gòu)隱藏在這套API內(nèi)部。我們只需要調(diào)用pyplot模塊所提供的函數(shù)就可以實(shí)現(xiàn)快速繪圖以及設(shè)置圖表的各種細(xì)節(jié)。pyplot模塊雖然用法簡(jiǎn)單,但不適合在較大的應(yīng)用程序中使用。
為了將面向?qū)ο蟮睦L圖庫(kù)包裝成只使用函數(shù)的調(diào)用接口,pyplot模塊的內(nèi)部保存了當(dāng)前圖表以及當(dāng)前子圖等信息。當(dāng)前的圖表和子圖可以使用plt.gcf()和plt.gca()獲得,分別表示"Get Current Figure"和"Get Current Axes"。在pyplot模塊中,許多函數(shù)都是對(duì)當(dāng)前的Figure或Axes對(duì)象進(jìn)行處理,比如說(shuō):
plt.plot()實(shí)際上會(huì)通過(guò)plt.gca()獲得當(dāng)前的Axes對(duì)象ax,然后再調(diào)用ax.plot()方法實(shí)現(xiàn)真正的繪圖。
可以在Ipython中輸入類(lèi)似"plt.plot??"的命令查看pyplot模塊的函數(shù)是如何對(duì)各種繪圖對(duì)象進(jìn)行包裝的。
配置屬性
matplotlib所繪制的圖表的每個(gè)組成部分都和一個(gè)對(duì)象對(duì)應(yīng),我們可以通過(guò)調(diào)用這些對(duì)象的屬性設(shè)置方法set_*()或者pyplot模塊的屬性設(shè)置函數(shù)setp()設(shè)置它們的屬性值。
因?yàn)閙atplotlib實(shí)際上是一套面向?qū)ο蟮睦L圖庫(kù),因此也可以直接獲取對(duì)象的屬性
配置文件
繪制一幅圖需要對(duì)許多對(duì)象的屬性進(jìn)行配置,例如顏色、字體、線(xiàn)型等等。我們?cè)诶L圖時(shí),并沒(méi)有逐一對(duì)這些屬性進(jìn)行配置,許多都直接采用了matplotlib的缺省配置。
matplotlib將這些缺省配置保存在一個(gè)名為“matplotlibrc”的配置文件中,通過(guò)修改配置文件,我們可以修改圖表的缺省樣式。配置文件的讀入可以使用rc_params(),它返回一個(gè)配置字典;在matplotlib模塊載入時(shí)會(huì)調(diào)用rc_params(),并把得到的配置字典保存到rcParams變量中;matplotlib將使用rcParams字典中的配置進(jìn)行繪圖;用戶(hù)可以直接修改此字典中的配置,所做的改變會(huì)反映到此后創(chuàng)建的繪圖元素。
繪制多子圖(快速繪圖)
Matplotlib 里的常用類(lèi)的包含關(guān)系為?Figure - Axes - (Line2D, Text, etc.)一個(gè)Figure對(duì)象可以包含多個(gè)子圖(Axes),在matplotlib中用Axes對(duì)象表示一個(gè)繪圖區(qū)域,可以理解為子圖。
可以使用subplot()快速繪制包含多個(gè)子圖的圖表,它的調(diào)用形式如下:
subplot(numRows, numCols, plotNum)
subplot將整個(gè)繪圖區(qū)域等分為numRows行* numCols列個(gè)子區(qū)域,然后按照從左到右,從上到下的順序?qū)γ總€(gè)子區(qū)域進(jìn)行編號(hào),左上的子區(qū)域的編號(hào)為1。如果numRows,numCols和plotNum這三個(gè)數(shù)都小于10的話(huà),可以把它們縮寫(xiě)為一個(gè)整數(shù),例如subplot(323)和subplot(3,2,3)是相同的。subplot在plotNum指定的區(qū)域中創(chuàng)建一個(gè)軸對(duì)象。如果新創(chuàng)建的軸和之前創(chuàng)建的軸重疊的話(huà),之前的軸將被刪除。
subplot()返回它所創(chuàng)建的Axes對(duì)象,我們可以將它用變量保存起來(lái),然后用sca()交替讓它們成為當(dāng)前Axes對(duì)象,并調(diào)用plot()在其中繪圖。
繪制多圖表(快速繪圖)
如果需要同時(shí)繪制多幅圖表,可以給figure()傳遞一個(gè)整數(shù)參數(shù)指定Figure對(duì)象的序號(hào),如果序號(hào)所指定的Figure對(duì)象已經(jīng)存在,將不創(chuàng)建新的對(duì)象,而只是讓它成為當(dāng)前的Figure對(duì)象。
import numpy as np
import matplotlib.pyplot as plt
plt.figure(1) # 創(chuàng)建圖表1
plt.figure(2) # 創(chuàng)建圖表2
ax1 = plt.subplot(211) # 在圖表2中創(chuàng)建子圖1
ax2 = plt.subplot(212) # 在圖表2中創(chuàng)建子圖2
x = np.linspace(0, 3, 100)
for i in xrange(5):
plt.figure(1) ?#? # 選擇圖表1
plt.plot(x, np.exp(i*x/3))
plt.sca(ax1) ? #? # 選擇圖表2的子圖1
plt.plot(x, np.sin(i*x))
plt.sca(ax2) ?# 選擇圖表2的子圖2
plt.plot(x, np.cos(i*x))
plt.show()
在圖表中顯示中文
matplotlib的缺省配置文件中所使用的字體無(wú)法正確顯示中文。為了讓圖表能正確顯示中文,可以有幾種解決方案。
在程序中直接指定字體。
在程序開(kāi)頭修改配置字典rcParams。
修改配置文件。
matplotlib輸出圖象的中文顯示問(wèn)題
上面那個(gè)link里的修改matplotlibrc方式,我試了好幾次都沒(méi)成功。能work的一個(gè)比較簡(jiǎn)便粗暴的方式(但不知道有沒(méi)有副作用)是,1.找到字體目錄YOURPYTHONHOME\Lib\site-packages\matplotlib\mpl-data\fonts\ttf下的Vera.ttf。這里我們用中文楷體(可以從windows/system32/fonts拷貝過(guò)來(lái),對(duì)于win8字體文件不是ttf的可以從網(wǎng)上下一個(gè)微軟雅黑),直接張貼到前面的ttf目錄下,然后更名為Vera.ttf。2.?中文字符串用unicode格式,例如:u''測(cè)試中文顯示'',代碼文件編碼使用utf-8 加上" #?coding = utf-8 ?"一行。
面向?qū)ο螽?huà)圖
matplotlib API包含有三層,Artist層處理所有的高層結(jié)構(gòu),例如處理圖表、文字和曲線(xiàn)等的繪制和布局。通常我們只和Artist打交道,而不需要關(guān)心底層的繪制細(xì)節(jié)。
直接使用Artists創(chuàng)建圖表的標(biāo)準(zhǔn)流程如下:
創(chuàng)建Figure對(duì)象
用Figure對(duì)象創(chuàng)建一個(gè)或者多個(gè)Axes或者Subplot對(duì)象
調(diào)用Axies等對(duì)象的方法創(chuàng)建各種簡(jiǎn)單類(lèi)型的Artists
import?matplotlib.pyplot as plt
X1 = range(0, 50)?Y1 = [num**2 for num in X1] # y = x^2?X2 = [0, 1]?Y2 = [0, 1] # y = x
Fig = plt.figure(figsize=(8,4)) # Create a `figure'?instance?Ax = Fig.add_subplot(111) # Create a `axes'?instance?in the figure?Ax.plot(X1, Y1, X2, Y2) # Create a Line2D?instance?in the axes
Fig.show()?Fig.savefig("test.pdf")
為避免中文顯示出錯(cuò),需導(dǎo)入matplotlib.pylab庫(kù)
1.2.1 確定數(shù)據(jù)
1.2.2 創(chuàng)建畫(huà)布
1.2.3 添加標(biāo)題
1.2.4 添加x,y軸名稱(chēng)
1.2.5 添加x,y軸范圍
1.2.6 添加x,y軸刻度
1.2.7 繪制曲線(xiàn)、圖例, 并保存圖片
保存圖片時(shí),dpi為清晰度,數(shù)值越高越清晰。請(qǐng)注意,函數(shù)結(jié)尾處,必須加plt.show(),不然圖像不顯示。
繪制流程與繪制不含子圖的圖像一致,只需注意一點(diǎn):創(chuàng)建畫(huà)布。
合理調(diào)整figsize、dpi,可避免出現(xiàn)第一幅圖橫軸名稱(chēng)與第二幅圖標(biāo)題相互遮蓋的現(xiàn)象.
2.2.1 rc參數(shù)類(lèi)型
2.2.2 方法1:使用rcParams設(shè)置
2.2.3 方法2:plot內(nèi)設(shè)置
2.2.4 方法3:plot內(nèi)簡(jiǎn)化設(shè)置
方法2中,線(xiàn)條形狀,linestyle可簡(jiǎn)寫(xiě)為ls;線(xiàn)條寬度,linewidth可簡(jiǎn)寫(xiě)為lw;線(xiàn)條顏色,color可簡(jiǎn)寫(xiě)為c,等等。
本文名稱(chēng):python創(chuàng)建子圖函數(shù) python做函數(shù)圖
網(wǎng)頁(yè)鏈接:http://chinadenli.net/article40/hipoho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、建站公司、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、動(dòng)態(tài)網(wǎng)站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
營(yíng)銷(xiāo)型網(wǎng)站建設(shè)知識(shí)