網(wǎng)站首頁 編程語言 正文
python?matplotlib自定義colorbar顏色條及內(nèi)置色條詳解_python
作者:liucheng_zimozigreat ? 更新時(shí)間: 2022-10-05 編程語言PS: 傳送門——自定義Colorbars教程
自定義colorbar(draw colorbar without any mapple/plot)
參考:Customized Colorbars Tutorial
???api example code: colorbar_only.py
自定義colorbar可以畫出任何自己想要的colorbar,自由自在、不受約束,不依賴于任何已有的圖(plot/mappable)。這里使用的是mpl.colorbar.ColorbarBase類,而colorbar類必須依賴于已有的圖。
關(guān)于該類的參數(shù)如下 (該類參數(shù)描述沒找到,部分參數(shù)的取值可參考colorbar中的描述):
class matplotlib.colorbar.ColorbarBase(ax, cmap=None, norm=None, alpha=None, values=None, boundaries=None, orientation=‘vertical’, ticklocation=‘a(chǎn)uto’, extend=‘neither’, spacing=‘uniform’, ticks=None, format=None, drawedges=False, filled=True, extendfrac=None, extendrect=False, label=’’)[source]
參數(shù)簡單描述ax :可用于設(shè)置colorbar的位置、長、寬
norm :用于規(guī)范化–設(shè)置顏色條最大最小值
cmap:顏色(可參考本篇博文的最后部分——推薦色帶與自定義色帶)
boundaries:要想使用extend,在norm之外,必須要有兩個(gè)額外的boundaries
orientation:colorbar方向,躺平or垂直
extend:延伸方向(在norm之外colorbar可延伸)
ticks:自定義各段的tick(記號(hào))
下面是一個(gè)例子,可以自己試試調(diào)整各項(xiàng)參數(shù):
import numpy as np
import pylab as plt
import matplotlib as mpl
if __name__ == '__main__':
fig = plt.figure(figsize=(3, 8))
cmap = mpl.cm.Spectral_r
ax3 = fig.add_axes([0.3, 0.2, 0.2, 0.5]) # 四個(gè)參數(shù)分別是左、下、寬、長
norm = mpl.colors.Normalize(vmin=1.3, vmax=2.5)
bounds = [ round(elem, 2) for elem in np.linspace(1.3, 2.5, 14)] #
cb3 = mpl.colorbar.ColorbarBase(ax3, cmap=cmap,
norm=norm,
# to use 'extend', you must
# specify two extra boundaries:
boundaries= [1.2] + bounds + [2.6],
extend='both',
ticks=bounds, # optional
spacing='proportional',
orientation='vertical')
plt.show()
contourf函數(shù)
contour和contourf分別繪制輪廓線和填充輪廓線。兩個(gè)版本的函數(shù)簽名和返回值是相同的。關(guān)于兩者畫圖的一些實(shí)例可以參閱python matplotlib contour畫等高線圖,以及matplotlib中文文檔
contourf([X, Y,] Z, [levels], **kwargs) # [ ]表示該參數(shù)是可選的——可以給定也可以不給定
contourf中的基本參數(shù):
X, Y : array-like, optional
??contourf參數(shù)中X和Y都必須是二維的,形狀與Z相同(例如,通過numpy.meshgrid創(chuàng)建);或者都必須是一維的,這樣len(X) == M是Z中的列數(shù),len(Y) == N是Z中的行數(shù)。
??如果沒有給定,則假設(shè)它們是整數(shù)索引,即X = range(M), Y = range(N)。Z : array-like(N, M)
繪制輪廓線的高度值。
levels : int or array-like, optional
確定等高線/區(qū)域的數(shù)量和位置。
如果是int n,則使用n個(gè)數(shù)據(jù)間隔;即畫n+1條等高線。水平高度是自動(dòng)選擇的。
如果類似數(shù)組,則在指定的級(jí)別上繪制等高線。這些值必須是遞增的。
為所有子圖添加一個(gè)色帶
參考:Matplotlib 2 Subplots, 1 Colorbar
在有圖的情況下,為所有子圖添加一個(gè)colorbar:
import numpy as np
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=2, ncols=2)
for ax in axes.flat:
im = ax.imshow(np.random.random((10,10)), vmin=0, vmax=1)
fig.subplots_adjust(right=0.8)
cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])
fig.colorbar(im, cax=cbar_ax)
plt.show()
推薦色帶與自定義色帶
在畫圖的時(shí)候,可以用推薦色帶。在Contourf 與記錄顏色刻度中,發(fā)現(xiàn)contourf中有cmap參數(shù),cmap即是色帶。cmap的值可以參考Colormap reference。
下面這段代碼來自Contourf 與記錄顏色刻度
cs = ax.contourf(X, Y, z, locator=ticker.LogLocator(), cmap=cm.PuBu_r) # PuBu_r是PuBu色帶的倒轉(zhuǎn)
cbar = fig.colorbar(cs)
其中cmap就是使用matplotlib提供的色帶,如果要自己制定色帶可以用參數(shù)colors如下:
# Colors是一些自選顏色列表
Colors=('#DDDDFF','#7D7DFF','#0000C6','#000079','#CEFFCE','#28FF28','#007500','#FFFF93','#8C8C00','#FFB5B5','#FF0000','#CE0000','#750000')
cs=m.contourf(xi, yi, z, colors=Colors, levels=levels, extend='both') # 這里m是一個(gè)basemap實(shí)例
在cmap中提供了一些默認(rèn)色帶:
總結(jié)?
原文鏈接:https://blog.csdn.net/liuchengzimozigreat/article/details/90477501
相關(guān)推薦
- 2023-04-06 C#中的那些警告該如何去除(完全去除C#警告)_C#教程
- 2022-02-28 VM2551:1 Component “pages/tabs/cates“ does not hav
- 2022-04-18 Python?socket如何解析HTTP請(qǐng)求內(nèi)容_python
- 2022-12-25 利用pycharm調(diào)試ssh遠(yuǎn)程程序并實(shí)時(shí)同步文件的操作方法_python
- 2023-04-24 Python?argparse中的action=store_true用法小結(jié)_python
- 2022-06-17 go語言beego框架web開發(fā)語法筆記示例_Golang
- 2022-06-18 asp.net中Log4.net的工具類helper_實(shí)用技巧
- 2023-01-02 Flutter?包管理器和資源管理使用學(xué)習(xí)_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支