一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Matplotlib配色之Colormap詳解

Matplotlib配色之Colormap詳解

2021-08-22 00:08Python草堂 Python

這篇文章主要介紹了Matplotlib配色之Colormap詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

概述

上一篇詳細(xì)介紹了 matplotlib 直接使用"格式化的顏色定義"給圖表元素配色。如,直接指定 axes.plot 繪制的 line2d 的顏色 fmt = 'r'。

有時(shí)我們希望圖表元素的顏色與數(shù)據(jù)集中某個(gè)變量的值相關(guān),顏色隨著該變量值的變化而變化,以反映數(shù)據(jù)變化趨勢(shì)、數(shù)據(jù)的聚集、分析者對(duì)數(shù)據(jù)的理解等信息,這時(shí),我們就要用到 matplotlib 的顏色映射(colormap)功能,即將數(shù)據(jù)映射到顏色。

要實(shí)現(xiàn)數(shù)據(jù)到顏色的映射需要做兩件事:

  • 變量值的變化范圍很大,matplotlib用 [0, 1] 區(qū)間的浮點(diǎn)數(shù)表示顏色rgb值,首先需要將不同的變量值映射到[0, 1]區(qū)間;
  • 將映射[0, 1]區(qū)間的變量值映射到顏色。

matplotlib.colors 模塊是實(shí)現(xiàn) colormap 配色功能的核心模塊。

  • 該模塊的normalize()類及其子類完成第1個(gè)任務(wù);
  • 該模塊的colormap類及其子類完成第2個(gè)任務(wù)。

將上述兩個(gè)類的實(shí)例,即:

  • 定義變量數(shù)據(jù)映射到[0, 1]區(qū)間的規(guī)則;
  • [0, 1]映射到顏色的規(guī)則。

作為參數(shù)傳遞給繪圖函數(shù),即可實(shí)現(xiàn)顏色反映變量數(shù)據(jù)屬性的目的。參見下面的入門示例。

入門示例

我們先看一個(gè)示例,簡(jiǎn)單、直觀地了解 matplotlib.colors模塊的工作原理。

使用有名的 iris data set(鳶尾屬植物數(shù)據(jù)集)中的數(shù)據(jù)來演示圖表的繪制和配置,這樣更接近實(shí)際的應(yīng)用??梢缘絨q群:457079928中下載這個(gè)數(shù)據(jù)集iris.csv。

iris 數(shù)據(jù)集首次出現(xiàn)在著名的英國(guó)統(tǒng)計(jì)學(xué)家和生物學(xué)家ronald fisher 1936年的論文《the use of multiple measurements in taxonomic problems》中,被用來介紹線性判別式分析。

在這個(gè)數(shù)據(jù)集中,包括了三類不同的鳶尾屬植物:iris setosa,iris versicolour,iris virginica。每類收集了50個(gè)樣本,因此這個(gè)數(shù)據(jù)集一共包含了150個(gè)樣本。

該數(shù)據(jù)集測(cè)量了 150 個(gè)樣本的 4 個(gè)特征,分別是:

  • sepal length(花萼長(zhǎng)度)
  • sepal width(花萼寬度)
  • petal length(花瓣長(zhǎng)度)
  • petal width(花瓣寬度)

以上四個(gè)特征的單位都是厘米(cm)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
%matplotlib inline
 
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
 
iris_df = pd.read_csv('iris.csv',index_col='index_col')
 
#用花萼長(zhǎng)度作為 x 值, 花萼寬度作為 y 值繪制散點(diǎn)圖
x = iris_df['petallength'].values
y = iris_df['sepallength'].values
 
fig = plt.figure()
ax= plt.axes()
 
# 直接指定顏色
# 點(diǎn)的顏色都一樣,顏色不反映更多的信息
plt.scatter(x, y,c='g')
 
plt.show()

Matplotlib配色之Colormap詳解

如果我們分析這個(gè)數(shù)據(jù),圖中的點(diǎn)聚集成 3 個(gè)組,如下圖所示:

Matplotlib配色之Colormap詳解

我們希望用點(diǎn)的顏色反映這種分組聚集的信息,可以這樣做:

  • 定義一個(gè)三個(gè)顏色的列表為 colormap;
  • 定義一個(gè)數(shù)據(jù)歸一化的實(shí)例,將希望關(guān)聯(lián)顏色的數(shù)據(jù)映射到[0, 1]區(qū)間;
  • 使用 cmap, norm 實(shí)現(xiàn)圖表元素的分組配色。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
%matplotlib inline
 
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
 
iris_df = pd.read_csv('../topics/iris.csv',index_col='index_col')
 
x = iris_df['petallength'].values
y = iris_df['sepallength'].values
 
fig = plt.figure()
ax= plt.axes()
 
#創(chuàng)建一個(gè)listedcolormap實(shí)例
#定義了[0, 1]區(qū)間的浮點(diǎn)數(shù)到顏色的映射規(guī)則
cmp = mpl.colors.listedcolormap(['r','g','b'])
 
# 創(chuàng)建一個(gè)boundarynorm實(shí)例
# boundarynorm是數(shù)據(jù)分組中數(shù)據(jù)歸一化比較好的方法
# 定義了變量值到 [0, 1]區(qū)間的映射規(guī)則,即數(shù)據(jù)歸一化
norm = mpl.colors.boundarynorm([0, 2, 6.4, 7], cmp.n)
 
#繪制散點(diǎn)圖,用x值著色,
#使用norm對(duì)變量值進(jìn)行歸一化,
#使用自定義的listedcolormap顏色映射實(shí)例
#norm將變量x的值歸一化
#cmap將歸一化的數(shù)據(jù)映射到顏色
plt.scatter(x,y,c=x, cmap=cmp, norm=norm, alpha=0.7)
 
plt.show()

Matplotlib配色之Colormap詳解

上圖就比較直觀地反映了數(shù)據(jù)的分組信息。

上面的示例使用了 colors 模塊中的主要功能,下面就詳細(xì)討論該模塊的架構(gòu)。

maplotlib.colors 模塊

matplotlib.colors模塊的架構(gòu)如下圖所示:

Matplotlib配色之Colormap詳解

matplotlib.colors模塊定義了11個(gè)類,定義了10個(gè)模塊命名空間的方法。

matplotlib.colors模塊的主要功能就是將數(shù)字或顏色參數(shù)轉(zhuǎn)換為rgbrgba。

rgbrgba分別是0-1范圍內(nèi)3個(gè)或4個(gè)浮點(diǎn)數(shù)的序列。參見上一篇 matplotlib 顏色定義格式規(guī)范中的相關(guān)內(nèi)容。

此模塊包括:

用于將數(shù)字歸一化的類和方法,即將列表中的數(shù)據(jù)映射到 [0,1]區(qū)間的浮點(diǎn)數(shù);

用于將歸范化后的數(shù)字映射到一維數(shù)組中的顏色,稱之為 colormap。

理解 matplotlib.colors 模塊的工作

  • 構(gòu)建一個(gè)[0,1][0, 255]區(qū)間,該區(qū)間上有256個(gè)點(diǎn);請(qǐng)想像把這256個(gè)點(diǎn)從左到右排列成一個(gè)長(zhǎng)條;
  • 通過normalize類(或者它的子類,映射方法不同)將數(shù)據(jù)映射到這個(gè)區(qū)間,比如上例中'petallength'數(shù)據(jù)區(qū)間是[1.0, 6.9], 就將區(qū)間[1.0, 6.9]映射到[0, 1]; 上例中定義了一個(gè)boundarynorm實(shí)例;
  • 構(gòu)建一個(gè)colormap(通常是它的子類)實(shí)例,該實(shí)例是一個(gè)顏色名稱列表,或者浮點(diǎn)數(shù)數(shù)組表示的rgb值;
  • 這個(gè)顏色列表依次排列在[0, 1]這個(gè)區(qū)間的256個(gè)點(diǎn)上,但每個(gè)顏色(colormap中列出的顏色)占用的位置和區(qū)間則由normalize指定;上例中定義一個(gè)cmp = mpl.colors.listedcolormap(['r','g','b']),列出了3種顏色;
  • 如果沒有定義colormap,則默認(rèn)使用rc image.cmap中的設(shè)置;
  • 如果不指定normalize,則默認(rèn)使用colors.normalize。

 matplotlib.colormap類及其子類

matplotlib.colors模塊的colormap類是一個(gè)基類,提供了將[0, 1]的數(shù)據(jù)映射到顏色的一些屬性和方法供其子類使用,很少直接使用該基類,主要使用它的兩個(gè)子類:

  • listedcolrmap()
  • linearsegmentedcolormap()

這兩個(gè)子類就是兩種不同的映射方法。

colors.listedcolormap()子類

listedcolormap()類從顏色列表生成一個(gè)colormap。

?
1
class matplotlib.colors.listedcolormap(colors, name='from_list', n=none)

**colors**參數(shù)有兩種形式:

  • matplotlib 接受的規(guī)范的顏色列表,如['r', 'g', 'b'], 或['c0', 'c3', 'c7'],等,詳見基礎(chǔ)篇;
  • [0, 1]區(qū)間的浮點(diǎn)數(shù)表示的rgb (n3)或 rgba (n4)的數(shù)組,如:array((0.9, 0.1, 0.1),(0.1, 0.9, 0.1),(0.1, 0.1, 0.9))

colors = ['r', 'g', 'b']為例:

就是將[0, 1]區(qū)間劃分為三段,第一段映射為'r'色,第二段映射為'g'色,第三段映射為'b'色。

請(qǐng)看下面的示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#本示例演示對(duì)散點(diǎn)條分段著不同顏色
 
%matplotlib inline
 
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.colors
 
x= np.linspace(1, 12, 24, endpoint=true)
y=x/x
 
fig = plt.figure()
ax= plt.axes()
 
# 將`[0, 1]`區(qū)間簡(jiǎn)單地分成四段,依次映射為列表`['r','g','b','y']`中列出的顏色
cmp = mpl.colors.listedcolormap(['r','g','b','y'])
 
#繪制散點(diǎn)圖,用x值著色
#沒有指定norm,所以使用默認(rèn)的`colors.normalize`
#將x的值區(qū)間為 [1, 24]`映射(歸一化)到`[0, 1]`區(qū)間
plt.scatter(x, y,s=120, marker='s', c=x, cmap=cmp)
 
plt.show()

Matplotlib配色之Colormap詳解

參數(shù) name

可選參數(shù)。

給自定義的colormap命名,將這個(gè)colormap注冊(cè)到matplotlib,后面即可以通過名稱來反復(fù)調(diào)用該colormap。

參數(shù) n

可選參數(shù)。

從列表中的顏色輸入到映射的顏色數(shù)量。默認(rèn)為none,即列表中的每個(gè)顏色都作為一項(xiàng)輸入到映射中。簡(jiǎn)單地說,就是選用列表中的顏色數(shù)量。如果

  • n < len(colors),列表被截?cái)?,即選用列表前n個(gè)顏色,后面的丟棄。
  • n > len(colors),通過重復(fù)列表以擴(kuò)展列表。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#本示例演示了參數(shù) n 的用法
 
%matplotlib inline
 
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.colors
 
x= np.linspace(1, 12, 24, endpoint=true)
y=x/x
 
fig = plt.figure()
ax= plt.axes()
ax.set_ylim(0.6, 1.5)
 
# 將`[0, 1]`區(qū)間簡(jiǎn)單地分成 n 段
# 由于n>len(colors),所以重復(fù)列表以擴(kuò)展顏色列表
cmp = mpl.colors.listedcolormap(['c2','c5','c0','c8'],n=6)
 
# n<len(colors),所以截?cái)囝伾斜?/code>
cmp2 = mpl.colors.listedcolormap(['c2','c5','c0','c8'],n=2)
 
#繪制散點(diǎn)圖,用x值著色
#沒有指定norm,所以使用默認(rèn)的`colors.normalize`
#將x的值區(qū)間為 [1, 24]`映射(歸一化)到`[0, 1]`區(qū)間
plt.scatter(x, x/x*1.1,s=120, marker='s', c=x, cmap=cmp)
 
plt.scatter(x, x/x*0.9,s=120, marker='s', c=x, cmap=cmp2)
 
plt.show()

Matplotlib配色之Colormap詳解

colors.linearsegmentedcolormap()子類

?
1
class matplotlib.colors.linearsegmentedcolormap(name, segmentdata, n=256, gamma=1.0)

基于線性分段的查找表,從線性映射段創(chuàng)建顏色映射 colormap 對(duì)象。

線性分段查找表是使用對(duì)每個(gè)原色進(jìn)行線性插值生成的。

segmentdata參數(shù)就是這個(gè)線性分段查找表。

segmentdata是一個(gè)帶'red'、‘green'、'blue'元素項(xiàng)的字典,即這個(gè)字典有三個(gè)keys:‘red'、‘green'、‘blue'。

每個(gè)健的值是一個(gè)列表,值列表的元素是形如: (x, y0, y1) 的元組,每個(gè)元組是列表的一行。

注意: ‘red'、‘green'、'blue'元素項(xiàng)不能少。

該字典中每個(gè)鍵的值列表的形式如下:

Matplotlib配色之Colormap詳解

表中給定顏色的每一行都是形如 x, y0, y1 的元組,若干個(gè)元組構(gòu)成列表。

在每個(gè)鍵的值序列中,x 必須從 0 到 1 單調(diào)增加。對(duì)于介于 x[i]x[i+1] 之間的任何輸入值 z, 給定顏色的輸出值將在 y1[i] 和 *y0[i+1]*之間線性插值。

理解線性分段查找表segmentdata

colors.linearsegmentedcolormap()子類在[0,1]區(qū)間上每個(gè)點(diǎn)的顏色是由該點(diǎn)的'red'、‘green'、'blue'三原色的值混合確定;

segmentdata 參數(shù)以一個(gè)字典形式提供每一段三原色值;

每個(gè)原色在[0, 1]區(qū)間上可以分段,分幾段由鍵值對(duì)中值列表的行數(shù)決定,分段的點(diǎn)則由元組(x, y0, y1)中的x值決定,如:

?
1
2
3
'red':  [(0.0, 0.0, 0.0),
     (0.4, 1.0, 1.0),
     (1.0, 1.0, 1.0)]

表示:

[0, 1]區(qū)間分成兩段,以 0.4 的位置為斷點(diǎn);
[0, 0.4]區(qū)間段內(nèi),'red'的值從 0.0 線性增加到 1.0;
[0.4, 1.0]區(qū)間段內(nèi),'red'的值保持 1.0 不變。

  • ‘green', 'blue'值依此類推;
  • 每個(gè)點(diǎn)的顏色則由三原色值混合而成。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#本示例演示 linearsegmentedcolormap 映射用法
#對(duì)數(shù)據(jù)分段,每一段的內(nèi)部通過線性插值獲得顏色值
#請(qǐng)注意比較與listedcolormap的不同
 
%matplotlib inline
 
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
 
x= np.linspace(1, 12, 24, endpoint=true)
y=x/x
 
fig = plt.figure()
ax= plt.axes()
ax.set_ylim(0.5,1.1)
 
# 在0.4位置設(shè)置斷點(diǎn),分為兩段
# 從0.0到0.4之間的 red 值是從 1.0 到 0.0 線性插值生成的(即漸變的),即從紅色到黑色
# green, blue的值從開始點(diǎn)到結(jié)束點(diǎn)都是零
# 從 0.4 到 1.0,則始終是紅色
 
cdict1 = {'red':  [(0.0, 0.0, 1.0),
          (0.4, 0.0, 1.0),
          (1.0, 1.0, 1.0)],
 
     'green': [(0.0, 0.0, 0.0),
          (1.0, 0.0, 0.0)],
 
     'blue': [(0.0, 0.0, 0.0),
          (1.0, 0.0, 0.0)]}
 
#將斷點(diǎn)設(shè)置在0.8的位置
cdict2 = {'red':  [(0.0, 0.0, 1.0),
          (0.8, 0.0, 1.0),
          (1.0, 1.0, 1.0)],
 
     'green': [(0.0, 0.0, 0.0),
          (1.0, 0.0, 0.0)],
 
     'blue': [(0.0, 0.0, 0.0),
          (1.0, 0.0, 0.0)]}
 
 
cmp1 = mpl.colors.linearsegmentedcolormap('name',cdict1)
 
cmp2 = mpl.colors.linearsegmentedcolormap('name',cdict2)
 
 
#繪制散點(diǎn)圖,用x值著色
plt.scatter(x, x/x*0.9,s=120,marker='s',c=x,cmap=cmp1,edgecolor='black')
 
plt.scatter(x, x/x*0.7,s=120,marker='s',c=x,cmap=cmp2,edgecolor='black')
 
plt.show()

Matplotlib配色之Colormap詳解

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 再看一個(gè)示例
 
%matplotlib inline
 
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
 
x= np.linspace(1, 12, 24, endpoint=true)
y=x/x
 
fig = plt.figure()
ax= plt.axes()
 
cdict = {'red':  [(0.0, 0.0, 0.2),
          (0.5, 1.0, 1.0),
          (1.0, 1.0, 1.0)],
 
     'green': [(0.0, 0.0, 0.5),
          (0.75, 1.0, 1.0),
          (1.0, 1.0, 1.0)],
 
     'blue': [(0.0, 0.0, 0.3),
          (0.25,0.0, 0.0 ),
          (0.5, 0.0, 0.0),
          (1.0, 1.0, 1.0)]}
 
cmp = mpl.colors.linearsegmentedcolormap('lsc',segmentdata=cdict)
 
#繪制散點(diǎn)圖,用x值著色
plt.scatter(x, y,s=120,marker='s',c=x,cmap=cmp,edgecolor='black')
 
plt.show()

Matplotlib配色之Colormap詳解

matplotlib.cm 模塊

matplotlib.colors模塊:

  • 用于構(gòu)建一個(gè)[0, 1]的標(biāo)量數(shù)據(jù)到顏色的映射,colormap 實(shí)例;
  • 將實(shí)際數(shù)據(jù)歸一化到[0, 1]區(qū)間,normalize及其子類的實(shí)例。

有時(shí)我們還需要對(duì)上述實(shí)例進(jìn)行一些處理,如將自定義的colormap注冊(cè)到matplotlib,后面通過其名稱調(diào)用它;查詢colormap在某個(gè)數(shù)據(jù)歸一化方法下各點(diǎn)的rgba值。

matplotlib設(shè)計(jì)了cm模塊,提供了:

  • 內(nèi)置的顏色映射 colormap,將顏色名稱映射到標(biāo)準(zhǔn)的顏色定義;
  • colormap 處理工具;
  • 如注冊(cè)一個(gè)colormap,通過名稱獲取一個(gè)colormap;
  • scalarmappable 混合類,這個(gè)混合類用以支持將標(biāo)量數(shù)據(jù)映射到rgba顏色。scalarmappable 在從給定的colormap返回rgba顏色之前使用數(shù)據(jù)歸一化化。

cm模塊設(shè)計(jì)了 1 個(gè)混合類,提供了17個(gè)函數(shù)方法。

其中有3個(gè)函數(shù)方法屬于模塊空間:

  • matplotlib.cm.get_cmap(name=none, lut=none)
  • matplotlib.cm.register_cmap(name=none, cmap=none, data=none, lut=none)
  • matplotlib.cm.revcmap(data)

有14個(gè)函數(shù)方法屬于scalarmappable類空間:

  • add_checker(self, checker)
  • autoscale(self)
  • autoscale_none(self)
  • changed(self)
  • check_update(self, checker)
  • get_alpha(self)
  • get_array(self)
  • get_clim(self)
  • get_cmap(self)
  • set_array(self, a)
  • set_clim(self, vmin=none, vmax=none)
  • set_cmap(self, cmap)
  • set_norm(self, norm)
  • to_rgba(self, x, alpha=none, bytes=false, norm=true)

class scalarmappable

?
1
class matplotlib.cm.scalarmappable(norm=none, cmap=none)

scalarmappable混合類,用于支持標(biāo)量數(shù)據(jù)到rgba的映射。在從給定的colormap中返回rgba顏色之前,scalarmappable利用了數(shù)據(jù)歸一化。

注: 使用了scalarmappable實(shí)例的to_rgba()方法。

matplotlib.cm.scalarmappable 類充分利用data->normalize->map-to-color處理鏈,以簡(jiǎn)化操作的步驟。

scaplarmapable類以matplotlib.colors模塊的 normalize實(shí)例和colormap實(shí)例為參數(shù)。

如果是norm = none, norm 默認(rèn)為colors.normalize對(duì)象。

colormap 有三個(gè)來源:

  • 內(nèi)置的;
  • 第三方的colormap庫(kù);
  • 自定義的。

如果為none,默認(rèn)為rcparams.image.cmap中的設(shè)置。

matplotlib.colorsmatplotlib.cm 模塊的關(guān)系如下圖所示:

Matplotlib配色之Colormap詳解

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
%matplotlib inline
?
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
?
x= np.linspace(1, 12, 24, endpoint=true)
y=x/x
?
fig = plt.figure()
ax= plt.axes()
ax.set_ylim(0.8, 1.2)
?
#傳遞不同的cmap
#繪制散點(diǎn)圖,用x值著色
plt.scatter(x, y*1.05,s=120, marker='s',c=x, cmap='viridis')
plt.scatter(x, y*0.95,s=120, marker='s',c=x, cmap='magma')
?
plt.show()

Matplotlib配色之Colormap詳解

?
1
2
3
4
5
6
#觀察相同的cmap,不同的norm,返回的rgba值
norm1 = mpl.colors.lognorm()
norm2 = mpl.colors.twoslopenorm(0.4)
 
sm1 = mpl.cm.scalarmappable(norm1, 'viridis')
sm2 = mpl.cm.scalarmappable(norm2, 'viridis')

Matplotlib配色之Colormap詳解

Matplotlib配色之Colormap詳解

?
1
2
3
4
5
#觀察相同的norm, 不同的cmap,返回的rgba值
norm = mpl.colors.lognorm()
 
sm3 = mpl.cm.scalarmappable(norm, 'viridis')
sm4 = mpl.cm.scalarmappable(norm, 'magma')

Matplotlib配色之Colormap詳解

Matplotlib配色之Colormap詳解

再看一個(gè)實(shí)例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
%matplotlib inline
 
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
 
iris_df = pd.read_csv('iris.csv',index_col='index_col')
iris_df.head()
 
petal_l = iris_df['petallength'].values
sepal_l = iris_df['sepallength'].values
 
x = petal_l
y = sepal_l
 
fig = plt.figure()
ax= plt.axes()
 
#調(diào)用cm.get_cmap()方法,
#獲取內(nèi)置的名為'ocean'的olormap實(shí)例
cmp = plt.get_cmap('ocean')
 
#創(chuàng)建一個(gè)normalize實(shí)例
norm = plt.normalize(vmin=np.min(x),vmax=np.max(x))
 
#繪制散點(diǎn)圖,用x值著色,
#使用norm對(duì)進(jìn)行歸一化,
#使用內(nèi)置的'ocean'映射
plt.scatter(x, y,c=x,cmap=cmp,norm=norm)
 
plt.show()

Matplotlib配色之Colormap詳解

到此這篇關(guān)于matplotlib配色之colormap詳解的文章就介紹到這了,更多相關(guān)matplotlib colormap內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/sinat_32570141/article/details/105226330

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲不卡视频在线 | 无颜之月全集免费观看 | 欧美在线成人免费国产 | 国产精品欧美韩国日本久久 | 国产成+人+综合+欧美 亚洲 | 欧美亚洲国产精品久久久 | 美艳教师刘艳第三部166 | 九九精品免费视频 | 欧美精品一区二区三区免费观看 | 久久伊人在 | 亚洲成人福利网站 | chinese男男gayxxx| 欧美人做人爱a全程免费 | 日本在线你懂的 | 啊啊啊好大视频 | 国产精品第四页 | 亚洲精品国产在线 | 黑人性xxxⅹxxbbbbb | 女黑人尺寸bbb | 韩国三级动漫 | 欧美大片一区二区三区 | 午夜福利电影网站鲁片大全 | ak福利午夜在线观看 | 激情小视频网站 | 女人叉开腿让男人捅 | 天天射寡妇射 | 性欧美videosex18嫩 | 亚洲美色综合天天久久综合精品 | 美女禁区视频无遮挡免费看 | 国产精品久久久久久久久齐齐 | 日本五十路六十30人8时间 | 国产盗摄wc女厕所 | 性伴交换多p | 手机在线观看伦理片 | 嘉嘉的丝袜美腿白丝 | 国内精品在线观看视频 | 精品国产免费一区二区三区 | 四虎影视在线影院在线观看 | 成年人视频在线免费看 | 欧美在线成人免费国产 | 午夜伦午夜伦锂电影 |