【python】Matplotlib作圖常用marker型別、線型和顏色

大大西瓜吃不飽發表於2020-11-28

python作圖中常常會考慮用什麼顏色、marker、線型,這個資料查了又查,所以自己總結在這個地方,以便常用。

一、常用marker表示

1.普通marker

這類普通marker直接marker ='^'就可以用了

2.高階marker

這類高階marker使用marker ='$\circledR$'來呼叫

可以顯示的形狀    marker名稱
ϖ   \varpi
ϱ   \varrho
ς   \varsigma
ϑ   \vartheta
ξ   \xi
ζ   \zeta
Δ   \Delta
Γ   \Gamma
Λ   \Lambda
Ω   \Omega
Φ   \Phi
Π   \Pi
Ψ   \Psi
Σ   \Sigma
Θ   \Theta
Υ   \Upsilon
Ξ   \Xi
℧   \mho
∇   \nabla
ℵ   \aleph
ℶ   \beth
ℸ   \daleth
ℷ   \gimel
/   /
[   [
⇓   \Downarrow
⇑   \Uparrow
‖   \Vert
↓   \downarrow
⟨   \langle
⌈   \lceil
⌊   \lfloor
⌞   \llcorner
⌟   \lrcorner
⟩   \rangle
⌉   \rceil
⌋   \rfloor
⌜   \ulcorner
↑   \uparrow
⌝   \urcorner
\vert
{   \{
\|
}   \}
]   ]
|
⋂   \bigcap
⋃   \bigcup
⨀   \bigodot
⨁   \bigoplus
⨂   \bigotimes
⨄   \biguplus
⋁   \bigvee
⋀   \bigwedge
∐   \coprod
∫   \int
∮   \oint
∏   \prod
∑   \sum

3.自定義marker

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']  # 用於顯示中文
plt.rcParams['axes.unicode_minus'] = False  # 用於顯示中文
plt.figure(dpi=200)
#常規marker使用
plt.plot([1,2,3],[1,2,3],marker=4, markersize=15, color='lightblue',label='常規marker')
plt.plot([1.8,2.8,3.8],[1,2,3],marker='2', markersize=15, color='#ec2d7a',label='常規marker')

#非常規marker使用
#注意使用兩個$符號包圍名稱
plt.plot([1,2,3],[4,5,6],marker='$\circledR$', markersize=15, color='r', alpha = 0.5 ,label='非常規marker')
plt.plot([1.5,2.5,3.5],[1.25,2.1,6.5],marker='$\heartsuit$', markersize=15, color='#f19790', alpha=0.5,label='非常規marker')
plt.plot([1,2,3],[2.5,6.2,8],marker='$\clubsuit$', markersize=15, color='g', alpha=0.5,label='非常規marker')

#自定義marker
plt.plot([1.2,2.2,3.2],[1,2,3],marker='$666$', markersize=15, color='#2d0c13',label='自定義marker')
plt.legend(loc='upper left')
for i in ['top','right']:
    plt.gca().spines[i].set_visible(False)

作圖結果為:

二、常用線型

1.字元型linestyle

共有四種:

linestyle_str = [
('solid', 'solid'), # Same as (0, ()) or '-';solid’, (0, ()) , '-'三種都代表實線。
('dotted', 'dotted'), # Same as (0, (1, 1)) or '.'
('dashed', 'dashed'), # Same as '--'
('dashdot', 'dashdot')] # Same as '-.'

2.元組型linestyle

可以通過修改元組中的數字來呈現出不同的線型,因此可以構造出無數種線型。

linestyle_tuple = [
('loosely dotted', (0, (1, 10))),
('dotted', (0, (1, 1))),
('densely dotted', (0, (1, 2))), ('loosely dashed', (0, (5, 10))),
('dashed', (0, (5, 5))),
('densely dashed', (0, (5, 1))), ('loosely dashdotted', (0, (3, 10, 1, 10))),
('dashdotted', (0, (3, 5, 1, 5))),
('densely dashdotted', (0, (3, 1, 1, 1))), ('dashdotdotted', (0, (3, 5, 1, 5, 1, 5))),
('loosely dashdotdotted', (0, (3, 10, 1, 10, 1, 10))),
('densely dashdotdotted', (0, (3, 1, 1, 1, 1, 1)))]

線型使用程式碼:

import matplotlib.pyplot as plt
plt.figure(dpi=120)
#字元型linestyle使用方法
plt.plot([1,2,3],[1,2,13],linestyle='dotted', color='#1661ab', linewidth=5, label='字元型線型:dotted')

#元組型lintstyle使用方法 
plt.plot([0.8,0.9,1.5],[0.8,0.9,21.5],linestyle=(0,(3, 1, 1, 1, 1, 1)), color='#ec2d7a', linewidth=5, label='元組型線型:(0,(3, 1, 1, 1, 1, 1)')

for i in ['top','right']:
    plt.gca().spines[i].set_visible(False)
    
#自定義inestyle  
plt.plot([1.5,2.5,3.5],[1,2,13],linestyle=(0,(1,2,3,4,2,2)), color='black', linewidth=5, label='自定義線型:(0,(1,2,3,4,2,2)))')
plt.plot([2.5,3.5,4.5],[1,2,13],linestyle=(2,(1,2,3,4,2,2)), color='g', linewidth=5, label='自定義線型:(1,(1,2,3,4,2,2)))')
plt.legend()

作圖結果為:

3.元組型詳解

上圖中線型(0,(1,2,3,4,2,2))每個數字是什麼意思?理解每個數字的意思就可以自定義線型了。

第一個0的意義,比較黑色和綠色線型即可知道

1,2 第一小段線寬1磅,第一和第二段之間距離2磅

3,4 第二小段線寬3磅,第二和第三段之間距離4磅

2,2 第三小段線寬2磅,第三和第四段之間距離2磅

三、常用顏色

裝了seaborn擴充套件的話,在字典seaborn.xkcd_rgb中包含所有的xkcd crowdsourced color names

以上部分內容參考:pythonic生物人,連結:https://www.jianshu.com/p/7543b925bdb8

相關文章