国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python繪圖系統(tǒng)27:matplotlib中平面坐標(biāo)、極坐標(biāo)和三維坐標(biāo)的所有繪圖函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了python繪圖系統(tǒng)27:matplotlib中平面坐標(biāo)、極坐標(biāo)和三維坐標(biāo)的所有繪圖函數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

繪圖函數(shù)列表

下面整理了幾乎所有matplotlib中的繪圖函數(shù),及其在不同坐標(biāo)軸下的表現(xiàn)。

函數(shù) 類(lèi)別 2D polar 3D 備注
imshow 圖像 X ? ?
pcolormesh 偽彩圖 [X,Y,]Z X,Y,Z ?
plot 曲線圖 x[,y] x[,y] x,y[,z]
scatter 散點(diǎn)圖 x,y/X,Y x,y x,y,[,z] 可為任意維度
stem 莖葉圖 x,y x,y x,y[,z]
step 階梯圖 x,y x,y x,y[,z]
bar 條形圖 x,y x,y x,y[,z]
barh 橫向條形圖 x,y x,y ?
stackplot 填充線圖 x,y x,y ?
plot_surface 曲面圖 ? ? x,y,z x,y必須是網(wǎng)格
plot_wireframe 網(wǎng)格圖 ? ? x,y,z x,y必須是網(wǎng)格
plot_trisurf 三角面圖 ? ? x,y,z x,y,z是一維數(shù)組
errorbar 誤差線 x,y
xerr,yerr
x,y
xerr,yerr
x,y,z
xerr,yerr,zerr
fill_between 縱向區(qū)間圖 x,y1,y2 x,y1,y2 ?
fill_betweenx 橫向區(qū)間圖 y, x1, x2 x,y1,y2 ?
contour 等高線 [x,y,]z [x,y,]z x,y,z
contourf 填充等高線 [x,y,]z [x,y,]z x,y,z
quiver 向量場(chǎng)圖 x,y,u,v x,y,u,v x,y,z,u,v,w
streamplot 流場(chǎng)圖 x,y,u,v x,y,u,v ?
barbs 風(fēng)場(chǎng)圖 x,y,u,v x,y,u,v ?
hist 直方圖 x x x
boxplot 箱線圖 x x x
violinplot 小提琴圖 x x ?
enventplot 信封圖 x x ?
hist2d 二維直方圖 x,y x,y ?
hexbin 鉆石圖 x,y x,y ?
pie 餅圖 x x ?
tricontour 自由等高線 x,y,z x,y,z x,y,z
tricontourf 自由填充等高線 x,y,z x,y,z x,y,z
tricolor 自由偽彩圖 x,y,z ?
triplot 三角骨架圖 x,y ?

為DrawType添加這些繪圖函數(shù)

之所以閑得無(wú)聊總結(jié)matplotlib中的繪圖函數(shù),是為了在Python繪圖系統(tǒng)中正確第調(diào)用它們。

有了這些繪圖類(lèi)別后,首先繪圖字典需要更新,這個(gè)字典不能做成全局變量,因?yàn)槠渲械腶x,其實(shí)是作為函數(shù)參數(shù)傳遞進(jìn)來(lái)的。

funcDct = {
    "點(diǎn)線圖"  : ax.plot,    "曲線圖" : ax.plot, 
    "散點(diǎn)圖"  : ax.scatter, 
    "圖像"    : ax.imshow,  "偽彩圖" : ax.pcolormesh, 
    "條形圖"  : ax.bar,     "橫向條形圖": ax.barh, 
    "莖葉圖"  : ax.stem,    "階梯圖": ax.step,
    "填充圖"  : ax.stackplot, 
    "誤差線"  : ax.errorbar, 
    "區(qū)間圖"  : ax.fill_between, "橫向區(qū)間圖": ax.fill_betweenx, 
    "曲面圖"  : ax.plot_surface, 
    "網(wǎng)格圖"  : ax.plot_wireframe,
    "三角面圖": ax.plot_trisurf,
    "等高線"  : ax.contour, "填充等高線" : ax.contourf,
    "向量場(chǎng)圖": ax.quiver,  "流場(chǎng)圖":ax.streamplot,
    "風(fēng)場(chǎng)圖"  : ax.barbs, 
    "直方圖"  : ax.hist,    "二維直方圖":ax.hist2d,
    "鉆石圖"  : ax.hexbin,  "信封圖"  : ax.enventplot, 
    "箱線圖"  : ax.boxplot, "小提琴圖":violinplot,
    "餅圖"    : ax.pie,
    "自由等高線" : ax.tricontour,
    "自由填充等高線" : ax.tricontourf,
    "自由偽彩圖" : ax.tricolor,
    "三角骨架圖" : ax.triplot
}

然后據(jù)此更新self.TYPES,

self.TYPES = [
    "點(diǎn)線圖", "曲線圖", "散點(diǎn)圖", "圖像", "偽彩圖" , 
    "條形圖", "橫向條形圖", "莖葉圖", "階梯圖", "填充圖", 
    "誤差線", "區(qū)間圖", "橫向區(qū)間圖",  "曲面圖",  
    "網(wǎng)格圖", "三角面圖", "等高線",  "填充等高線",
    "向量場(chǎng)圖", "流場(chǎng)圖", "風(fēng)場(chǎng)圖",  "直方圖", "二維直方圖", 
    "鉆石圖", "信封圖", "箱線圖", "小提琴圖", "餅圖", 
    "自由等高線", "自由填充等高線" ,"自由偽彩圖" ,"三角骨架圖"]

繪圖類(lèi)別跳轉(zhuǎn)坐標(biāo)系

這些繪圖函數(shù)建議使用的坐標(biāo)系如下表

繪圖函數(shù) 圖像類(lèi)別 建議的坐標(biāo)
imshow 圖像 None
plot_surface 曲面圖 3d
plot_wireframe 網(wǎng)格圖 3d
plot_trisurf 三角面圖 3d
tricontour 自由等高線 None, polar, 3d
plot 曲線圖 None, polar, 3d
scatter 散點(diǎn)圖 None, polar, 3d
stem 莖葉圖 None, polar, 3d
step 階梯圖 None, polar, 3d
bar 條形圖 None, polar, 3d
errorbar 誤差線 None, polar, 3d
contour 等高線 None, polar, 3d
quiver 向量場(chǎng)圖 None, polar, 3d
pcolormesh 偽彩圖 None, polar
barh 橫向條形圖 None, polar
stackplot 填充線圖 None, polar
fill_between 區(qū)間圖 None, polar,
fill_betweenx 橫向區(qū)間圖 None, polar,
streamplot 流場(chǎng)圖 None, polar
barbs 風(fēng)場(chǎng)圖 None, polar
violinplot 小提琴圖 None, polar
enventplot 信封圖 None, polar
hist2d 二維直方圖 None, polar
hexbin 鉆石圖 None, polar
pie 餅圖 None, polar
tricolor 自由偽彩圖 None, polar
triplot 三角骨架圖 None, polar
contourf 填充等高線 None, polar
tricontourf 自由填充等高線 None, polar
hist 直方圖 None, polar
boxplot 箱線圖 None, polar
tricontour 自由等高線 None, polar, 3d
plot 曲線圖 None, polar, 3d
scatter 散點(diǎn)圖 None, polar, 3d
stem 莖葉圖 None, polar, 3d
step 階梯圖 None, polar, 3d
bar 條形圖 None, polar, 3d
errorbar 誤差線 None, polar, 3d
contour 等高線 None, polar, 3d
quiver 向量場(chǎng)圖 None, polar, 3d

故更改cbTypeChanged函數(shù)如下

def cbTypeChanged(self, evt):
    t = self.drawVars['type'].get()
    p = self.drawVars['proj'].get()
    NO3D = ("曲線圖", "散點(diǎn)圖", "莖葉圖", "條形圖", "誤差線",
        "等高線", "向量場(chǎng)圖", "自由等高線")
    if t in ("圖像"):
        self.wDct['proj']['value'] =  ("None")
    elif t in ("曲面圖", "網(wǎng)格圖", "三角面圖"):
        self.wDct['proj']['value'] =  ("3d")
    elif t in NO3D:
        self.wDct['proj']['value'] =  ("None", "3d", "polar")
    else:
        self.wDct['proj']['value'] =  ("None", "polar")
    
    projs = self.wDct['proj']['value']
    if p not in projs:
        self.drawVars['proj'].set(projs[0])        
    self.cbProjChanged(None)

坐標(biāo)

接下來(lái)要為這些繪圖函數(shù)分類(lèi),發(fā)現(xiàn)最特殊的是imshow,只支持平面直角坐標(biāo);然后是三個(gè)三維繪圖函數(shù),只支持三維直角坐標(biāo),剩下的基本都同時(shí)支持平面直角和極坐標(biāo)。

def cbTypeChanged(self, evt):
    t = self.drawVars['type'].get()
    p = self.drawVars['proj'].get()
    NO3D = ("曲線圖", "散點(diǎn)圖", "莖葉圖", "條形圖", "誤差線",
        "等高線", "向量場(chǎng)圖", "自由等高線")
    if t in ("圖像"):
        self.wDct['proj']['value'] =  ("None")
    elif t in ("曲面圖", "網(wǎng)格圖", "三角面圖"):
        self.wDct['proj']['value'] =  ("3d")
    elif t in NO3D:
        self.wDct['proj']['value'] =  ("None", "3d", "polar")
    else:
        self.wDct['proj']['value'] =  ("None", "polar")
    
    projs = self.wDct['proj']['value']
    if p not in projs:
        self.drawVars['proj'].set(projs[0])        
    self.cbProjChanged(None)

最后,是坐標(biāo)的變化,直角坐標(biāo)系下的變化為

def cbProjNone(self, t):
    if t in ("點(diǎn)線圖", "曲線圖"):
        self.wDct['dim']['value'] = ('x', 'xy')
    elif t in ("圖像", "直方圖", "餅圖", "箱線圖", "小提琴圖", "信封圖"):
        self.wDct['dim']['value'] = ('x')
    elif t in ("誤差線", "向量場(chǎng)圖", "流場(chǎng)圖", "風(fēng)場(chǎng)圖"):
        self.wDct['dim']['value'] = ('xyuv')
    elif t in ("偽彩圖", "等高線", "填充等高線"):
        self.wDct['dim']['value'] = ('x', 'xyz')
    elif t in ("區(qū)間圖", "橫向區(qū)間圖", "自由等高線", "自由偽彩圖", "自由填充等高線"):
        self.wDct['dim']['value'] = ('xyz')
    else:
        self.wDct['dim']['value'] = ('xy')

經(jīng)過(guò)對(duì)比發(fā)現(xiàn),極坐標(biāo)情況下除了沒(méi)有imshow之外,其他繪圖函數(shù)的坐標(biāo)軸的個(gè)數(shù)與直角坐標(biāo)基本相同,所以就直接調(diào)用cbProjNone了。

def cbProjPolar(self, t):
    self.cbProjNone(t)

相比之下,三維坐標(biāo)的情況可能更加簡(jiǎn)單一些

def cbProj3d(self, t):
    if t  in ("向量場(chǎng)圖", "誤差線"):
        self.wDct['dim']['value'] = ('xyzuvw')
    elif t in ("曲線圖", "散點(diǎn)圖", "莖葉圖", "階梯圖", "條形圖"):
        self.wDct['dim']['value'] = ('xy', 'xyz')
    else:
        self.wDct['dim']['value'] = ('xyz')

至此,就成功載入了幾乎所有matplotlib中的函數(shù)。

源代碼

Python繪圖系統(tǒng):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-728852.html

  • 基礎(chǔ):將matplotlib嵌入到tkinter ??簡(jiǎn)單繪圖系統(tǒng) ??數(shù)據(jù)導(dǎo)入??三維繪圖系統(tǒng)
  • 自定義控件:坐標(biāo)控件??坐標(biāo)列表控件??多組數(shù)據(jù)繪圖系統(tǒng)??極坐標(biāo)??繪圖風(fēng)格??風(fēng)格控件
  • 圖表類(lèi)型和風(fēng)格:散點(diǎn)圖和條形圖??混合類(lèi)型圖表??多子圖??定制繪圖風(fēng)格
  • 坐標(biāo)設(shè)置進(jìn)階:動(dòng)態(tài)更新組件??導(dǎo)入外部文件??導(dǎo)入txt
  • 動(dòng)圖繪制:動(dòng)圖繪制??實(shí)現(xiàn)動(dòng)圖繪制系統(tǒng)
  • 坐標(biāo)列表進(jìn)階:導(dǎo)出數(shù)據(jù)??系統(tǒng)菜單??批量文件導(dǎo)入??輔助坐標(biāo)軸
  • 繪圖類(lèi)型進(jìn)階:坐標(biāo)映射??八種繪圖函數(shù)??坐標(biāo)和繪圖函數(shù)設(shè)置??所有繪圖函數(shù)

到了這里,關(guān)于python繪圖系統(tǒng)27:matplotlib中平面坐標(biāo)、極坐標(biāo)和三維坐標(biāo)的所有繪圖函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包