自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

超詳解matplotlib中的折線圖方法plot()

開發(fā) 后端
對最基本的折線圖plot做詳細(xì)的解讀,為繪制其他類型的圖形打好基礎(chǔ)。

[[327436]]

 

  1.  import pandas as pd   
  2. import numpy as np  
  3. import matplotlib.pyplot as plt  
  4. import matplotlib  

目的

  •  對最基本的折線圖plot做詳細(xì)的解讀,為繪制其他類型的圖形打好基礎(chǔ)。

plt.plot()的定義及調(diào)用

定義:

  •  plt.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

調(diào)用:

  •  plot([x], y, [fmt], *, data=None, **kwargs)
  •  plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

位置參數(shù):

  •  [x], y, [fmt]

關(guān)鍵字傳參:

  •  *后面的參數(shù)

x序列的不同類型

文本型的x序列

 

  1. # data  
  2. X = [8,3,5,'t'] # 會按順序【0,1,2,3】被定位在x軸的刻度上  
  3. Y = [1,2,3,4]  
  4. plt.plot(X,Y,marker = 'o',c='g' 
  5. ax = plt.gca()  
  6. print('x軸刻度:',plt.xticks())  #list  
  7. xticklabels_lst = ax.get_xticklabels()  
  8. print('-'*70) 

x軸刻度:([0, 1, 2, 3], <a list of 4 Text xticklabel objects>)

----------------------------------------------------------------------

 

  1. print('x軸刻度標(biāo)簽:',list(xticklabels_lst))  #是個文本標(biāo)簽 

x軸刻度標(biāo)簽:[Text(0, 0, '8'), Text(1, 0, '3'), Text(2, 0, '5'), Text(3, 0, 't')]

數(shù)字型的x序列

 

  1. # data  
  2. X = [8,3,5,1] # 會按數(shù)字【8,3,5,1】被定位在x軸的刻度上  
  3. Y = [1,2,3,4]  
  4. plt.plot(X,Y,marker = 'o',c='g' 
  5. ax = plt.gca()  
  6. print('x軸刻度:',plt.xticks()) # array  
  7. xticklabels_lst = ax.get_xticklabels()  
  8. print('-'*70) 

x軸刻度:(array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]), <a list of 10 Text xticklabel objects>)

----------------------------------------------------------------------

 

  1. print('x軸刻度標(biāo)簽:',list(xticklabels_lst))  #是個按序號排列的文本標(biāo)簽 

x軸刻度標(biāo)簽:[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條線

 

  1. # data  
  2. X1 = [8,3,5,'t']  
  3. X2 = [8,3,5,1]  
  4. Y = [1,2,3,4]  
  5. plt.plot(X2,Y,marker = 'o',c='r' 
  6. plt.plot(X1,Y,marker = 'o',c='g' 
  7. ax = plt.gca()  
  8. print('x軸刻度:',plt.xticks())  
  9. xticklabels_lst = ax.get_xticklabels()  
  10. print('-'*70) 

x軸刻度:([0, 1, 2, 3], <a list of 4 Text xticklabel objects>)

----------------------------------------------------------------------

 

  1. print('x軸刻度標(biāo)簽:',list(xticklabels_lst))  

x軸刻度標(biāo)簽:[Text(0, 0, '8'), Text(1, 0, '3'), Text(2, 0, '5'), Text(3, 0, 't')]

提供不同數(shù)量的位置參數(shù)

幾種方式的調(diào)用

無參數(shù)

 

  1. #返回一個空列表  
  2. plt.plot() 

[]

plot([x], y, [fmt], *, data=None, **kwargs) plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

1個參數(shù)

 

  1. #提供一個數(shù)(點)  
  2. plt.plot(4.5,marker='o'

[<matplotlib.lines.Line2D at 0x7f6f0352f978>]

 

  1. #提供一個數(shù)字序列  
  2. plt.plot([4.5,2,3],marker='o'

[<matplotlib.lines.Line2D at 0x7f6f0350d438>]

2個參數(shù)

自動解析位置參數(shù)的原則

(x,y)形式

 

  1. # x/y 為序列  
  2. plt.plot([2,1,3],[0.5,2,2.5],marker='o'

[<matplotlib.lines.Line2D at 0x7f6f034735c0>]

 

  1. # x/y 為標(biāo)量  
  2. plt.plot(2,['z'],marker = 'o')  

[<matplotlib.lines.Line2D at 0x7f6f03461b38>]

(y,fmt)形式

 

  1. # plt.plot(2,'z',marker = 'o') #Unrecognized character z in format string 

 

  1. # y 為標(biāo)量   
  2. plt.plot(2,'r',marker = 'o')  

[<matplotlib.lines.Line2D at 0x7f6f033b7cf8>]

 

  1. # y 為序列  
  2. plt.plot([2,1,3],'r--*')  

[<matplotlib.lines.Line2D at 0x7f6f033a1cf8>]

3個參數(shù)

([x],y,[fmt])形式

 

  1. plt.plot([2,1,3],[0.5,2,2.5],'p--g',  
  2. #          marker='o'  
  3.          markersize = 15  
  4.         ) 

[<matplotlib.lines.Line2D at 0x7f6f0331e048>]

 

  1. # fmt不寫,或者‘’,則使用默認(rèn)樣式  
  2. plt.plot([2,1,3],[0.5,2,2.5],'',  
  3. #          marker='o'  
  4.          markersize = 15  
  5.         ) 

[<matplotlib.lines.Line2D at 0x7f6f03289390>]

繪圖Line2D

僅畫線:繪圖的默認(rèn)情況

默認(rèn)樣式:藍(lán)色的【線】【無標(biāo)記】

 

  1. marker = None 表示不做設(shè)置  
  2. plt.plot([2,2.5,1]) 

[<matplotlib.lines.Line2D at 0x7f6f031f86a0>]

僅畫標(biāo)記

 

  1. plt.plot([2,2.5,1],'o') 

[<matplotlib.lines.Line2D at 0x7f6f03afcba8>]

畫線+標(biāo)記

 

  1. plt.plot([2,2.5,1],'o-') 

[<matplotlib.lines.Line2D at 0x7f6f031d62e8>]

 

  1. plt.plot([2,1,3],'bo--') 

[<matplotlib.lines.Line2D at 0x7f6f0317b128>]

fmt的組合順序隨意的?

6圖合一及結(jié)論

 

  1. # 6種組合  
  2. # [color][marker][line],3種任意組合為6種可能  
  3. # b :藍(lán)色  
  4. # o: 圓圈標(biāo)記  
  5. # --:虛線  
  6. fmt = ['bo--','b--o','ob--','o--b','--bo','--ob']  
  7. for i in range(len(fmt)):  
  8.     plt.subplot(2,3,i+1)  
  9.     plt.plot([2,1,3],fmt[i])   
  10. # 結(jié)論:[color][marker][line],每個都是可選的,每個屬性可以選擇寫或者不寫  
  11. # 而且與組合中它們所在的位置順序無關(guān) 

fmt支持的【線】-line

Line Styles

==== character description ====

 '-' solid line style '--' dashed line style '-.' dash-dot line style ':' dotted line style 

fmt支持的【標(biāo)記】-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 

所有樣式:標(biāo)記、線、顏色參考大全

鏈接:https://www.kesci.com/home/project/5ea4e5da105d91002d506ac6

樣式屬性

線條的屬性

 

  1. # 包含:(顏色除外)  
  2. # 線的樣式、線的寬度  
  3. # linestyle or ls: {'-', '--', '-.', ':', '', }  
  4. # linewidth or lw: float  
  5. ls_lst = ['-', '--', '-.', ':',]   
  6. lw_lst = [1,3,5,7]  
  7. for i in range(len(ls_lst)):  
  8.     plt.plot([1,2,3,4],[i+1]*4,ls_lst[i],lw = lw_lst[i]) 

標(biāo)記的屬性

 

  1. # 包含:  
  2. '''  
  3. marker: marker style  
  4. #邊框(顏色及邊框粗細(xì))  
  5. markeredgecolor or mec: color  
  6. markeredgewidth or mew: float  
  7. #面顏色  
  8. markerfacecolor or mfc: color  
  9. markerfacecoloralt or mfcalt: color  #備用標(biāo)記顏色  
  10. #標(biāo)記的大小  
  11. markersize or ms: float  
  12. markevery: None or int or (int, int) or slice or List[int] or float or (float, float)  
  13. '''  
  14. linestyle = None 表示不做設(shè)置,以默認(rèn)值方式  
  15. linestyle = ''  linestyle = 'none' 表示無格式,無線條  
  16. plt.plot([4,2,1,3],linestyle = 'none',   
  17.          marker = 'o' 
  18.          markersize = 30 
  19.          # edge  
  20.          markeredgecolor = 'r' 
  21.          markeredgewidth = 5 
  22.          # face   
  23.          markerfacecolor = 'g' 
  24. #          markerfacecolor = 'none' 
  25. #          markerfacecolor = None 
  26.         ) 

[<matplotlib.lines.Line2D at 0x7f6f02f085c0>]

綜合:帶有空心圓標(biāo)記的線條圖

 

  1. '''  
  2. 標(biāo)記點是覆蓋在線條的上面,位于上層  
  3. 圖層層次:[top]  spines > marker > line > backgroud  [bottom]  
  4. spines:軸的4個邊框  
  5. spines 將線條圖圍在里面  
  6. '''  
  7. plt.plot([1,5,3,4],   
  8.          marker = 'o' 
  9.          markersize = 20 
  10.          # edge  
  11.          markeredgecolor = 'r' 
  12.          markeredgewidth = 5 
  13.          # face   
  14.          markerfacecolor = 'w',    # 白色,與背景色相同,把線條覆蓋著,營造空心的視覺效果  
  15. #          markerfacecolor = 'none', # 無色,透明,會看到線條  
  16. #          markerfacecolor = None, # 不設(shè)置,默認(rèn)顏色  
  17.         )  
  18. markerfacecolor = ' ', # 無法識別  
  19. markerfacecolor = '', # 無法識別 

[<matplotlib.lines.Line2D at 0x7f6f02e6e470>]

data關(guān)鍵字的使用

字典數(shù)據(jù)

 

  1. #字典數(shù)據(jù)  
  2. d = {'name':list('abcd'),'age':[22,20,18,27]}  
  3. plt.plot('name','age',ddata = d) 

[<matplotlib.lines.Line2D at 0x7f6f02e52e48>]

DataFrame數(shù)據(jù)

 

  1. #DataFrame數(shù)據(jù)  
  2. d = {'name':list('abcd'),'age':[22,20,18,27]}  
  3. df = pd.DataFrame(d) 
  4. df 
  name age
0 a 22
1 b 20
2 c 18
3 d 27

 

  1. plt.plot('name','age',data = df

[<matplotlib.lines.Line2D at 0x7f6f02d7a940>]

總結(jié)

定義:

  •  plt.plot(*args,scalex = True,scaley = True,data = None ,**kwargs)

調(diào)用:

  •  plot([x], y, [fmt], *, data=None, **kwargs)
  •  plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

x,y,fmt均不能使用關(guān)鍵字傳參

推薦使用:

  •  plt.plot(x,y,fmt)
  •  多組數(shù)據(jù)時,再次調(diào)用
  •  plt.plot(x2,y2,fmt2) 畫第2條線即可...
  •  默認(rèn)樣式:藍(lán)色的【線】+【無標(biāo)記】,即無標(biāo)記的線
  •  可使用fmt來快捷控制線條的基本屬性:顏色、線、標(biāo)記
  •  [color][marker][line]
  •  fmt與關(guān)鍵字屬性可混合使用,當(dāng)兩者有沖突時,以關(guān)鍵字的為準(zhǔn)。
  •  對于已有的帶標(biāo)簽的數(shù)據(jù)如df,可使用
  •  plt.plot('columns_name1','columns_name2',data = df)

 

 

責(zé)任編輯:龐桂玉 來源: Python中文社區(qū)
相關(guān)推薦

2023-06-27 13:46:20

2011-12-21 13:25:33

JavaJFreeChart

2022-02-23 15:17:04

鴻蒙OpenHarmonJacascript

2023-11-10 18:07:42

Python折線圖折線

2021-01-08 10:32:24

Charts折線圖數(shù)據(jù)可視化

2024-12-24 12:00:00

Matplotlib可視化分析Python

2022-11-07 08:42:50

iOS 16SwiftUI

2023-11-06 10:04:51

Go語言大數(shù)據(jù)

2020-06-08 15:06:33

Pandas可視化數(shù)據(jù)

2024-01-29 13:02:00

數(shù)據(jù)可視化庫數(shù)組

2018-04-24 16:01:46

代碼數(shù)據(jù)可視化Python

2023-03-06 08:03:10

Python可視化工具

2022-11-18 09:03:09

SwiftUIiOS16

2020-04-25 20:11:23

Python熱力圖代碼

2009-07-15 16:18:08

JSci.swing包

2021-03-05 07:03:38

Pyecharts可視化工具復(fù)合圖

2021-04-20 09:56:58

Python 開發(fā)編程語言

2022-09-29 15:24:11

物聯(lián)網(wǎng)MQTT

2024-05-15 07:48:08

.NET開源圖表庫

2015-07-22 10:57:36

watchOS圖表自定義
點贊
收藏

51CTO技術(shù)棧公眾號