您好,登錄后才能下訂單哦!
本篇內容介紹了“如何使用matplotlib中的折線圖方法plot()”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
plt.plot()的定義及調用
定義:
plt.plot(*args, scalex=True, scaley=True, data=None, **kwargs)
調用:
plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
位置參數:
[x], y, [fmt]
關鍵字傳參:
*后面的參數
x序列的不同類型
文本型的x序列
# data X = [8,3,5,'t'] # 會按順序【0,1,2,3】被定位在x軸的刻度上 Y = [1,2,3,4] plt.plot(X,Y,marker = 'o',c='g') ax = plt.gca() print('x軸刻度:',plt.xticks()) #list xticklabels_lst = ax.get_xticklabels() print('-'*70)
x軸刻度:([0, 1, 2, 3], <a list of 4 Text xticklabel objects>)
----------------------------------------------------------------------
print('x軸刻度標簽:',list(xticklabels_lst)) #是個文本標簽
x軸刻度標簽:[Text(0, 0, '8'), Text(1, 0, '3'), Text(2, 0, '5'), Text(3, 0, 't')]
數字型的x序列
# data X = [8,3,5,1] # 會按數字【8,3,5,1】被定位在x軸的刻度上 Y = [1,2,3,4] plt.plot(X,Y,marker = 'o',c='g') ax = plt.gca() print('x軸刻度:',plt.xticks()) # array xticklabels_lst = ax.get_xticklabels() print('-'*70)
x軸刻度:(array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]), <a list of 10 Text xticklabel objects>)
----------------------------------------------------------------------
print('x軸刻度標簽:',list(xticklabels_lst)) #是個按序號排列的文本標簽
x軸刻度標簽:[Text(0.0, 0, '0'), Text(1.0, 0, '1'), Text(2.0, 0, '2'), Text(3.0, 0, '3'), Text(4.0, 0, '4'), Text(5.0, 0, '5'), Text(6.0, 0, '6'), Text(7.0, 0, '7'), Text(8.0, 0, '8'), Text(9.0, 0, '9')]
2種類型-2條線
# data X1 = [8,3,5,'t'] X2 = [8,3,5,1] Y = [1,2,3,4] plt.plot(X2,Y,marker = 'o',c='r') plt.plot(X1,Y,marker = 'o',c='g') ax = plt.gca() print('x軸刻度:',plt.xticks()) xticklabels_lst = ax.get_xticklabels() print('-'*70)
x軸刻度:([0, 1, 2, 3], <a list of 4 Text xticklabel objects>)
----------------------------------------------------------------------
print('x軸刻度標簽:',list(xticklabels_lst))
x軸刻度標簽:[Text(0, 0, '8'), Text(1, 0, '3'), Text(2, 0, '5'), Text(3, 0, 't')]
提供不同數量的位置參數
幾種方式的調用
無參數
#返回一個空列表 plt.plot()
[]
plot([x], y, [fmt], *, data=None, **kwargs) plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)
1個參數
#提供一個數(點) plt.plot(4.5,marker='o')
[<matplotlib.lines.Line2D at 0x7f6f0352f978>]
#提供一個數字序列 plt.plot([4.5,2,3],marker='o')
[<matplotlib.lines.Line2D at 0x7f6f0350d438>]
2個參數
自動解析位置參數的原則
(x,y)形式
# x/y 為序列 plt.plot([2,1,3],[0.5,2,2.5],marker='o')
[<matplotlib.lines.Line2D at 0x7f6f034735c0>]
# x/y 為標量 plt.plot(2,['z'],marker = 'o')
[<matplotlib.lines.Line2D at 0x7f6f03461b38>]
(y,fmt)形式
# plt.plot(2,'z',marker = 'o') #Unrecognized character z in format string
# y 為標量 plt.plot(2,'r',marker = 'o')
[<matplotlib.lines.Line2D at 0x7f6f033b7cf8>]
# y 為序列 plt.plot([2,1,3],'r--*')
[<matplotlib.lines.Line2D at 0x7f6f033a1cf8>]
3個參數
([x],y,[fmt])形式
plt.plot([2,1,3],[0.5,2,2.5],'p--g', # marker='o' markersize = 15 )
[<matplotlib.lines.Line2D at 0x7f6f0331e048>]
# fmt不寫,或者‘’,則使用默認樣式 plt.plot([2,1,3],[0.5,2,2.5],'', # marker='o' markersize = 15 )
[<matplotlib.lines.Line2D at 0x7f6f03289390>]
繪圖Line2D
僅畫線:繪圖的默認情況
默認樣式:藍色的【線】【無標記】
# marker = None 表示不做設置 plt.plot([2,2.5,1])
[<matplotlib.lines.Line2D at 0x7f6f031f86a0>]
僅畫標記
plt.plot([2,2.5,1],'o')
[<matplotlib.lines.Line2D at 0x7f6f03afcba8>]
畫線+標記
plt.plot([2,2.5,1],'o-')
[<matplotlib.lines.Line2D at 0x7f6f031d62e8>]
plt.plot([2,1,3],'bo--')
[<matplotlib.lines.Line2D at 0x7f6f0317b128>]
fmt的組合順序隨意的?
6圖合一及結論
# 6種組合 # [color][marker][line],3種任意組合為6種可能 # b :藍色 # o: 圓圈標記 # --:虛線 fmt = ['bo--','b--o','ob--','o--b','--bo','--ob'] for i in range(len(fmt)): plt.subplot(2,3,i+1) plt.plot([2,1,3],fmt[i]) # 結論:[color][marker][line],每個都是可選的,每個屬性可以選擇寫或者不寫 # 而且與組合中它們所在的位置順序無關
fmt支持的【線】-line
Line Styles
==== character description ====
'-' solid line style '--' dashed line style '-.' dash-dot line style ':' dotted line style
fmt支持的【標記】-marker
Markers
==== character description ====
'.' point marker ',' pixel marker \\\'o\\\' circle marker 'v' triangle_down marker '^' triangle_up marker '<' triangle_left marker '>' triangle_right marker '1' tri_down marker '2' tri_up marker '3' tri_left marker '4' tri_right marker 's\\\' square marker 'p' pentagon marker '*' star marker 'h' hexagon1 marker 'H' hexagon2 marker '+' plus marker 'x' x marker 'D' diamond marker 'd' thin_diamond marker '|' vline marker '_' hline marker
fmt支持的【顏色】-color
Colors
The supported color abbreviations are the single letter codes
==== character color ====
'b' blue 'g' green 'r' red 'c' cyan 'm' magenta 'y' yellow 'k' black 'w' white
所有樣式:標記、線、顏色參考大全
鏈接:https://www.kesci.com/home/project/5ea4e5da105d91002d506ac6
樣式屬性
線條的屬性
# 包含:(顏色除外) # 線的樣式、線的寬度 # linestyle or ls: {'-', '--', '-.', ':', '', } # linewidth or lw: float ls_lst = ['-', '--', '-.', ':',] lw_lst = [1,3,5,7] for i in range(len(ls_lst)): plt.plot([1,2,3,4],[i+1]*4,ls_lst[i],lw = lw_lst[i])
標記的屬性
# 包含: ''' marker: marker style #邊框(顏色及邊框粗細) markeredgecolor or mec: color markeredgewidth or mew: float #面顏色 markerfacecolor or mfc: color markerfacecoloralt or mfcalt: color #備用標記顏色 #標記的大小 markersize or ms: float markevery: None or int or (int, int) or slice or List[int] or float or (float, float) ''' # linestyle = None 表示不做設置,以默認值方式 # linestyle = '' linestyle = 'none' 表示無格式,無線條 plt.plot([4,2,1,3],linestyle = 'none', marker = 'o', markersize = 30, # edge markeredgecolor = 'r', markeredgewidth = 5, # face markerfacecolor = 'g', # markerfacecolor = 'none', # markerfacecolor = None, )
[<matplotlib.lines.Line2D at 0x7f6f02f085c0>]
綜合:帶有空心圓標記的線條圖
''' 標記點是覆蓋在線條的上面,位于上層 圖層層次:[top] spines > marker > line > backgroud [bottom] spines:軸的4個邊框 spines 將線條圖圍在里面 ''' plt.plot([1,5,3,4], marker = 'o', markersize = 20, # edge markeredgecolor = 'r', markeredgewidth = 5, # face markerfacecolor = 'w', # 白色,與背景色相同,把線條覆蓋著,營造空心的視覺效果 # markerfacecolor = 'none', # 無色,透明,會看到線條 # markerfacecolor = None, # 不設置,默認顏色 ) # markerfacecolor = ' ', # 無法識別 # markerfacecolor = '', # 無法識別
[<matplotlib.lines.Line2D at 0x7f6f02e6e470>]
data關鍵字的使用
字典數據
#字典數據 d = {'name':list('abcd'),'age':[22,20,18,27]} plt.plot('name','age',ddata = d)
[<matplotlib.lines.Line2D at 0x7f6f02e52e48>]
DataFrame數據
#DataFrame數據 d = {'name':list('abcd'),'age':[22,20,18,27]} df = pd.DataFrame(d) df
name | age | |
---|---|---|
0 | a | 22 |
1 | b | 20 |
2 | c | 18 |
3 | d | 27 |
plt.plot('name','age',data = df)
[<matplotlib.lines.Line2D at 0x7f6f02d7a940>]
“如何使用matplotlib中的折線圖方法plot()”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。