Python氣象數(shù)據(jù)處理與繪圖(19):如何使用NCL色板(調(diào)色盤思路相同)

更多內(nèi)容詳見https://www.yxybiubiubiu.com/2020/06/06/color/

一嚎于、 使用NCL色板(使用調(diào)色盤文件思路相同)

NCL的色板十分豐富是晨,幾乎可以涵蓋平常所需绪囱。詳見:傳送門

那么我們能否將NCL的色板用在python中呢拄查?答案當(dāng)然是可以的。

我在氣象家園發(fā)現(xiàn)了個帖子恰矩,樓主自己封裝了一個包仿便,可以在python中調(diào)用NCL的色板,詳見:傳送門稻扬,一般來說這個包足夠大家日常使用了卦方。一些想進(jìn)一步了解原理并且進(jìn)行擴(kuò)展應(yīng)用的朋友,可以接著往下看泰佳。

其基本原理就是讀取NCL色板的.rgb文件盼砍,將其信息轉(zhuǎn)換為顏色數(shù)組,形成matplotlib色板逝她。那么下面浇坐,我就根據(jù)這個思路,解釋下其過程和原理黔宛。首先我將NCL已有色板.rgb文件整理上傳了近刘,下載點這里,下載后將壓縮包內(nèi)文件夾解壓臀晃。

.rgb文件內(nèi)容如下(以3gauss.rgb為例):

#  r   g   b
0 0 255
0 0 255
1 2 254
2 4 253
3 6 252
...
...
...

ncolors = 254觉渴,代表該色板有254個色號,第二行為注釋內(nèi)容徽惋,表明接下來的每一行案淋,顏色存放都是red,green,blue的順序。那么接下來我們只需要讀取這個文件寂曹,將顏色存為一個[254,3]的數(shù)組哎迄,然后將數(shù)組除255即可。除255的原因是隆圆,python的顏色值位于[0,1]之間漱挚,而rgb信息位于[0,255]之間,所以除255就可以將顏色信息映射在[0,1]之間渺氧。

但是旨涝!有一個問題,我查看了NCL的一些色板侣背,這些色板的格式并不統(tǒng)一白华,有些是直接映射在[0,1]之間了,有些文件頭有很多行贩耐,總之很雜亂弧腥,用之前還是需要統(tǒng)一格式,做好質(zhì)量控制的潮太。(我后邊有時間的話考慮將這些文件統(tǒng)一格式再重新上傳管搪。)

下面給出一個使用NCL色板的示例:

import pandas as pd
import numpy as np
from matplotlib.colors import ListedColormap
import matplotlib.pyplot as plt
#讀取.rgb文件
rgb = pd.read_csv('./colormaps/3gauss.rgb',sep='\s+',skiprows=2,names=['r','g','b']).values/255
#將rgb信息映射為colormap
colormap = ListedColormap(rgb)
#創(chuàng)建100個隨機數(shù)
colors = np.random.randint(0,100,size=100)
x,y = np.random.rand(100),np.random.rand(100)
#繪制散點圖虾攻,使用NCL中的3gauss色板
sct = plt.scatter(x, y, s=100, c=colors,cmap=colormap,edgecolors='black')
plt.colorbar(sct)
image.png

使用調(diào)色盤軟件生成的色板也是同樣的思路,將生成的txt內(nèi)的rgb信息讀取映射更鲁,就可以使用了霎箍。

二、設(shè)定色板顏色澡为,進(jìn)行插值映射

最后再介紹一種創(chuàng)建色板的方式漂坏,那就是挑選幾種自己需要的顏色排列起來,然后進(jìn)行插值媒至,形成顏色之間的漸變顶别,最后映射為色板。

import pandas as pd
import numpy as np
from matplotlib.colors import ListedColormap
import matplotlib.colors as colors
import matplotlib.pyplot as plt
#設(shè)定色板基礎(chǔ)色為黑紅橘藍(lán)
colorslist = ['black','red','orange','blue']
#將四種色插值為具有300個漸變色的色板
colormap = colors.LinearSegmentedColormap.from_list('123',colorslist,N=300)
#創(chuàng)建100個隨機數(shù)
colors = np.random.randint(0,100,size=100)
x,y = np.random.rand(100),np.random.rand(100)
#繪制散點圖拒啰,使用剛剛自定義的123色板
sct = plt.scatter(x, y, s=100, c=colors,cmap=colormap,edgecolors='black')
plt.colorbar(sct)
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末筋夏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子图呢,更是在濱河造成了極大的恐慌条篷,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛤织,死亡現(xiàn)場離奇詭異赴叹,居然都是意外死亡,警方通過查閱死者的電腦和手機指蚜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門乞巧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人摊鸡,你說我怎么就攤上這事绽媒。” “怎么了免猾?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵是辕,是天一觀的道長。 經(jīng)常有香客問我猎提,道長获三,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任锨苏,我火速辦了婚禮疙教,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘伞租。我一直安慰自己贞谓,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布葵诈。 她就那樣靜靜地躺著裸弦,像睡著了一般犀暑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上烁兰,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音徊都,去河邊找鬼沪斟。 笑死,一個胖子當(dāng)著我的面吹牛暇矫,可吹牛的內(nèi)容都是我干的主之。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼李根,長吁一口氣:“原來是場噩夢啊……” “哼槽奕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起房轿,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤粤攒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后囱持,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體夯接,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年纷妆,在試婚紗的時候發(fā)現(xiàn)自己被綠了盔几。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡掩幢,死狀恐怖逊拍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情际邻,我是刑警寧澤芯丧,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站世曾,受9級特大地震影響注整,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜度硝,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一肿轨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蕊程,春花似錦椒袍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽玫恳。三九已至,卻和暖如春优俘,著一層夾襖步出監(jiān)牢的瞬間京办,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工帆焕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惭婿,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓叶雹,卻偏偏與公主長得像财饥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子折晦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355