上篇內容我們詳細了解了Python使用matplotlib繪製一個複雜的正弦函數的方法(參見),上篇內容我們提到了一個屬性'b-',簡單介紹了它是用來設置線條顏色和樣式的屬性。今天,我們詳細了解一下Python中的matplotlib庫還有哪些常見的線條樣式和顏色屬性。
一個例子
我們還是使用上篇中繪製的正弦函數為例。先來繪製一個正弦函數。將上篇的完整代碼附上。
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei'] # 通過字體設置使其支持中文
plt.rcParams['axes.unicode_minus']=False # 用來正常顯示圖形中的負號
#設置輸出的圖片大小
figsize = 8,8
figure, ax = plt.subplots(figsize=figsize)
x = np.linspace(-np.pi,np.pi,512,endpoint=True) #獲取x坐標
sin,cos = np.sin(x), np.cos(x) #獲取y坐標
ax = plt.plot(x,sin,"r-",lw=2.5,label="正弦Sin()")
# 拉伸並重設刻度
plt.xlim(x.min()*1.5,x.max()*1.5)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])
plt.yticks([-1,0,1])
# 隱藏不需要的框線
ax=plt.gca() #獲取Axes對象
ax.spines['right'].set_color('none') #隱藏右邊界
ax.spines['top'].set_color('none') #隱藏上邊界
# 添加標題和備註信息
plt.title("使用matplotlib繪製正弦曲線",fontsize=24,color="red")
plt.text(+2.5,-1.3,"By:Python高手養成",fontsize=14,color="green")
# 平移坐標軸
ax.xaxis.set_ticks_position('bottom') #x軸坐標刻度設置在坐標軸下面
ax.spines['bottom'].set_position(('data',0)) #x軸坐標軸平移至經過零點(0,0)位置
ax.yaxis.set_ticks_position('left') #y軸坐標刻度設置在坐標軸下面
ax.spines['left'].set_position(('data',0)) #y軸坐標軸平移至經過零點(0,0)位置
# 顯示圖例
plt.legend(loc="upper left",fontsize=14)
# 批量獲取刻度並設置樣式
for label in ax.get_xticklabels()+ax.get_yticklabels(): #獲取刻度
label.set_fontsize(18)
label.set_bbox(dict(facecolor='pink', edgecolor='g', alpha=0.5))
plt.grid()
plt.savefig('matplotlib繪製正弦圖.jpg', dpi=300)
plt.show() #顯示圖表
運行效果如下所示
今天要了解的是黑體部分plt.plot(x,sin,"r-",lw=2.5,label="正弦Sin()"),我們把上篇內容中的'b-'改成了'r-'改變了線條的顏色。
函數幹了什麼?
函數完整描述如下
plt.plot(x, y, label = "test", linewidth = '1', color=' red ', linestyle=':', marker='|')
該函數的作用是:將y與x繪製為直線或標記。
x:點的橫坐標,可迭代對象
y:點的縱坐標,可迭代對象
linewidth:設置線的粗細
label:設置圖例,需要調用 plt 或子圖的 legend 方法
color:顏色
linestyle:線的樣式
marker:點的形狀
下面,我們看下文檔中對於這些樣式的具體定義
linestyle參數屬性
'-' solid line style 實線樣式
'--' dashed line style 虛線樣式
'-.' dash-dot line style 點劃線樣式
':' dotted line style 虛線樣式
marker參數屬性
'.' 點標記
',' 像素標記
'o' 圓標記
'v' 三角向下標記
'^' 三角向上標記
'<' 三角向左標記
'>' 三角向右標記
'1' 向下標記
'2' 向上標記
'3' 向左標記
'4' 向右標記
's' 方形標記
'p' 五角大樓標記
'*' 星標記
'h' 六邊形標記1
'H' 六邊形標記2
'+' 加號標記
'x' x 標記
'D' 鑽石標記
'd' 薄鑽石標記
'|' 豎線標記
'_' 橫線標記
color顏色屬性
matplotlib中的顏色值是存儲在matplotlib.colors.cnames中,而cnames屬性是一個字典類型,其中定義了matplotlib中所能使用的所有顏色樣式。
>>>len(matplotlib.colors.cnames.keys())
148
>>>for name , hex in matplotlib.colors.cnames.items(): print(name, ':' , hex)
aliceblue : #F0F8FF
antiquewhite : #FAEBD7
aqua : #00FFFF
aquamarine : #7FFFD4
azure : #F0FFFF
beige : #F5F5DC
bisque : #FFE4C4
black : #000000
blanchedalmond : #FFEBCD
blue : #0000FF
blueviolet : #8A2BE2
brown : #A52A2A
burlywood : #DEB887
cadetblue : #5F9EA0
chartreuse : #7FFF00
chocolate : #D2691E
coral : #FF7F50
cornflowerblue : #6495ED
cornsilk : #FFF8DC
crimson : #DC143C
cyan : #00FFFF
darkblue : #00008B
darkcyan : #008B8B
darkgoldenrod : #B8860B
darkgray : #A9A9A9
darkgreen : #006400
darkgrey : #A9A9A9
darkkhaki : #BDB76B
darkmagenta : #8B008B
darkolivegreen : #556B2F
darkorange : #FF8C00
darkorchid : #9932CC
darkred : #8B0000
darksalmon : #E9967A
darkseagreen : #8FBC8F
darkslateblue : #483D8B
darkslategray : #2F4F4F
darkslategrey : #2F4F4F
darkturquoise : #00CED1
darkviolet : #9400D3
deeppink : #FF1493
deepskyblue : #00BFFF
dimgray : #696969
dimgrey : #696969
dodgerblue : #1E90FF
firebrick : #B22222
floralwhite : #FFFAF0
forestgreen : #228B22
fuchsia : #FF00FF
gainsboro : #DCDCDC
ghostwhite : #F8F8FF
gold : #FFD700
goldenrod : #DAA520
gray : #808080
green : #008000
greenyellow : #ADFF2F
grey : #808080
honeydew : #F0FFF0
hotpink : #FF69B4
indianred : #CD5C5C
indigo : #4B0082
ivory : #FFFFF0
khaki : #F0E68C
lavender : #E6E6FA
lavenderblush : #FFF0F5
lawngreen : #7CFC00
lemonchiffon : #FFFACD
lightblue : #ADD8E6
lightcoral : #F08080
lightcyan : #E0FFFF
lightgoldenrodyellow : #FAFAD2
lightgray : #D3D3D3
lightgreen : #90EE90
lightgrey : #D3D3D3
lightpink : #FFB6C1
lightsalmon : #FFA07A
lightseagreen : #20B2AA
lightskyblue : #87CEFA
lightslategray : #778899
lightslategrey : #778899
lightsteelblue : #B0C4DE
lightyellow : #FFFFE0
lime : #00FF00
limegreen : #32CD32
linen : #FAF0E6
magenta : #FF00FF
maroon : #800000
mediumaquamarine : #66CDAA
mediumblue : #0000CD
mediumorchid : #BA55D3
mediumpurple : #9370DB
mediumseagreen : #3CB371
mediumslateblue : #7B68EE
mediumspringgreen : #00FA9A
mediumturquoise : #48D1CC
mediumvioletred : #C71585
midnightblue : #191970
mintcream : #F5FFFA
mistyrose : #FFE4E1
moccasin : #FFE4B5
navajowhite : #FFDEAD
navy : #000080
oldlace : #FDF5E6
olive : #808000
olivedrab : #6B8E23
orange : #FFA500
orangered : #FF4500
orchid : #DA70D6
palegoldenrod : #EEE8AA
palegreen : #98FB98
paleturquoise : #AFEEEE
palevioletred : #DB7093
papayawhip : #FFEFD5
peachpuff : #FFDAB9
peru : #CD853F
pink : #FFC0CB
plum : #DDA0DD
powderblue : #B0E0E6
purple : #800080
rebeccapurple : #663399
red : #FF0000
rosybrown : #BC8F8F
royalblue : #4169E1
saddlebrown : #8B4513
salmon : #FA8072
sandybrown : #F4A460
seagreen : #2E8B57
seashell : #FFF5EE
sienna : #A0522D
silver : #C0C0C0
skyblue : #87CEEB
slateblue : #6A5ACD
slategray : #708090
slategrey : #708090
snow : #FFFAFA
springgreen : #00FF7F
steelblue : #4682B4
tan : #D2B48C
teal : #008080
thistle : #D8BFD8
tomato : #FF6347
turquoise : #40E0D0
violet : #EE82EE
wheat : #F5DEB3
white : #FFFFFF
whitesmoke : #F5F5F5
yellow : #FFFF00
yellowgreen : #9ACD32
這些顏色值對應的圖片如下,收藏已備後用哦。
matplotlib中的關於點、線的樣式及顏色屬性就介紹到這裡了。需要知道的是,這些屬性值是可以通用的。比如在劃線時可以使用這些屬性,在畫柱形圖、雷達圖、餅圖時,這些屬性也都是通用的。
現在理解上面的'-b'和'r-'的作用了吧?表示繪製顏色為綠色或者紅色的實線。
好了,今天的內容就到這裡了,我們梳理了matplotlib中關於點、線的顏色及樣式屬性,這是很重要的,因為很多圖我們在實際繪製過程中都是通過點線的組合來實現的。這些顏色及線條樣式建議大家收藏,以備後用。
喜歡的朋友們加個關注,後續推出更有意思的內容,還想學習哪些有關Python編程的重要知識點和內容呢?歡迎下方留言,我會陸續跟大家分享相關內容。
轉載請註明出處,百家號:Python高手養成