千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 數(shù)據(jù)分析之繪制各種圖形

數(shù)據(jù)分析之繪制各種圖形

來源:千鋒教育
發(fā)布人:wjy
時間: 2022-08-12 15:12:00 1660288320

#### plot 函數(shù)

##### 1. 函數(shù)功能

通常用于繪制線圖。

##### 2.參數(shù)說明:

> plot([x], y, [fmt], data=None, **kwargs) # 單條線:
>
> plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs) # 多條線一起畫

- x:x軸上的數(shù)字

- y:y軸上的數(shù)字

- 可選參數(shù)[fmt] 是一個字符串來定義圖的基本屬性如:顏色(color),點型(marker),線型(linestyle),

具體形式 fmt = '[color][marker][line]'

- ls:linestyle 即折線的風格

- lw: linewidth 即折線線條的寬度

- color:線條的顏色

如果要使用顏色,常用的顏色簡寫(更多的顏色使用可以參照上篇文章):

| 簡寫 | 顏色 |
| :--: | :-----------: |
| 'b' | 藍色(blue) |
| 'g' | 綠色(green) |
| 'r' | 紅色(red) |
| 'c' | 青色(cyan) |
| 'm' | 洋紅(magenta) |
| 'y' | 黃色(yellow) |
| 'k' | 黑色(black) |
| 'w' | 白色(white) |

- label:標記圖形內(nèi)容的標簽文本
- marker: 就是數(shù)據(jù)點的形狀,比如原點,三角形,加號等等

##### 3. 實例代碼

```python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['Simhei']
# 中文情況下 負號顯示會有異常 所以還需要設置負號的操作
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(0.01, 12, 100) # 生成100個從0.01到12的均勻數(shù)值
y = np.cos(x) # 余弦函數(shù)

plt.plot(x,y,ls='-',color='r',lw=2,label='plot繪圖') # 設置繪圖屬性
plt.legend() # 設置顯示圖例
plt.show() # 顯示圖像
```

##### 4. 效果

截屏2021-09-14 上午11.14.42

### scatter()函數(shù)

##### 1. 函數(shù)功能

尋找變量之間的關系,用于繪制散點圖。

##### 2.參數(shù)說明:

> ```python
> scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
> ```

- x,y:array_like,shape(n,)
輸入數(shù)據(jù)
- s:標量或array_like,shape(n,),可選
大小以點數(shù)^ 2。默認是`rcParams ['lines.markersize'] ** 2`。
- c:顏色,順序或顏色順序,可選,默認:'b'
- marker:`?matplotlib.markers.MarkerStyle`,可選,默認值:'o'
- cmap:`?matplotlib.colors.Colormap`,可選,默認:無
一個`?matplotlib.colors.Colormap`實例或注冊名稱, `cmap`僅在`c`是浮點數(shù)組時使用。如果沒有, 默認為rc`image.cmap`。
- norm:`?matplotlib.colors.Normalize`,可選,默認:無
`?matplotlib.colors.Normalize`實例用于縮放亮度數(shù)據(jù)為0,1。`norm`只有在`c`是一個數(shù)組時才被使用。如果`None',則使用默認值:func:`normalize`。
- edgecolors :顏色或顏色順序,可選,默認值:無
如果無,則默認為'face', 如果'face',邊緣顏色將永遠是相同的臉色。如果它是'none',補丁邊界不會被畫下來。

##### 3.實例代碼

```python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['Simhei']
# 中文情況下 負號顯示會有異常 所以還需要設置負號的操作
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(1, 20, 200)
y = np.random.randn(200)
plt.scatter(x,y,s=10,c='g',label='散點圖繪制') # x,y的數(shù)據(jù)規(guī)模必須要相同
plt.legend()
plt.show()
```

##### 4.效果

截屏2021-09-14 上午11.17.56

### xlim()和 ylim()函數(shù)

##### 1. 函數(shù)功能

在Python的matplotlib.pyplot中方法xlim和ylim的使用方法相同,分別用來設置x軸和y軸的顯示范圍。

##### 2.參數(shù)說明:

對x軸操作`plt.xlim(xmin,xmax)`,同理對y軸操作`plt.ylim(ymin,ymax)`

- xmin|ymin:x軸上的刻度最小值或者是 y 軸上的刻度最小值
- xmax|ymax:x軸上的刻度最大值或者是 y 軸上的刻度最大值

##### 3.實例代碼

```python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['Simhei']
# 中文情況下 負號顯示會有異常 所以還需要設置負號的操作
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(1, 20, 100)
y = np.cos(x) # 余弦函數(shù)

plt.plot(x,y,ls='-',color='r',lw=2,label='plot繪圖') # 設置繪圖屬性
plt.legend() # 顯示圖例
# 設置x 和 y 軸的刻度
plt.xlim(5,15)
plt.ylim(0,1)
plt.show()
```

##### 4.效果對比

截屏2021-09-14 上午11.24.51

如果把x軸刻度調(diào)成與生成范圍一致(1~20),我們就會發(fā)現(xiàn)線條布滿了x軸范圍。

### xlabel()和 ylabel函數(shù)

##### 1. 函數(shù)功能

設置x軸或者y 軸的標簽文本

##### 2.參數(shù)說明:

> matplotlib.pyplot.ylabel(s, *args, **kwargs)
>
> matplotlib.pyplot.xlabel(s, *args, **kwargs)

設置坐標軸x軸文本標簽`xlabel(string)`
設置y軸文本標簽`ylabel(string)`

fontsize:數(shù)字或’small’,‘large’,‘medium’

verticalalignment:表示上下平移向figure與axis之間的中間線對齊,字母底端為‘top’‘top’, ‘bottom’, ‘center’,‘baseline’.

horizontalalignment:意思為左右平移向中間對齊.如’left’,若為xlabel則標識最左邊對齊figure的中垂線,若為ylabel則標識最左邊對齊figure的中橫線.取值可以是:‘center’, ‘right’, ‘left’

rotation: 意思為旋轉(zhuǎn),取值有:‘vertical’,‘horizontal’

##### 3.實例代碼

```python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['Simhei']
# 中文情況下 負號顯示會有異常 所以還需要設置負號的操作
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(1, 20, 100)
y = np.cos(x)

plt.plot(x,y,ls='-',color='r',lw=2,label='plot繪圖')
plt.legend() # 顯示圖例
# 設置x和y軸的標簽
plt.xlabel('x軸標簽') # 設置x軸文本標簽
plt.ylabel('y軸標簽') # 設置y軸文本標簽
plt.show()
```

 

##### 4.效果

截屏2021-09-14 上午11.29.59

### grid()函數(shù)

##### 1. 函數(shù)功能

繪制刻度線的網(wǎng)格線

##### 2.參數(shù)說明

> grid(b=None, which=‘major’, axis=‘both’, **kwargs)

b: 表示布爾類型的參數(shù)是否顯示網(wǎng)格線,如果提供了參數(shù),則認為需要顯示網(wǎng)格,b=True

which: {‘major’, ‘minor’, ‘both’}, optional。 The grid lines to apply the changes on.
可選參數(shù),取值為 ‘major’, ‘minor’, ‘both’,需要修改的網(wǎng)格線

axis:{‘both’, ‘x’, ‘y’}, optional The axis to apply the changes on.
可選參數(shù),需要修改的坐標軸
**kwargs:Define the line properties of the grid, e.g.:grid(color=‘r’, linestyle=’-’, linewidth=2)
定義網(wǎng)格線的屬性,如:顏色,風格、粗細等

##### 3.實例代碼

```
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['Simhei']
# 中文情況下 負號顯示會有異常 所以還需要設置負號的操作
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(1, 20, 200) # 從1到20均勻取200個數(shù)
y = np.random.randn(200) # 在標準正態(tài)分布中隨機取200個數(shù)
plt.scatter(x,y,s=10,c='b',label='散點圖繪制') # x,y的數(shù)據(jù)規(guī)模必須要相同
plt.legend()
# 設置網(wǎng)格線
plt.grid(axis='both',linestyle=":",color='g')
plt.show()
```

##### 4.效果

截屏2021-09-14 上午11.55.59

### axvspan()和函數(shù)

##### 1.函數(shù)功能

允許我們添加一個跨坐標軸的水平帶(矩形)和跨坐標軸的垂直帶(矩形).主要為用戶提供一定的參照.

##### 2.參數(shù)說明:

> axvspan(xmin, xmax, ymin=0, ymax=1, **kwargs)
>
> axhspan(xmin, xmax, ymin=0, ymax=1, **kwargs)

- xmin:參考區(qū)域的其實位置
- xmax:參考區(qū)域的終止位置
- facecolor:參考區(qū)域的填充顏色
- alpha:參考區(qū)域填充顏色的透明度

##### 3. 實例代碼

```python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['Simhei']
# 中文情況下 負號顯示會有異常 所以還需要設置負號的操作
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(1, 20, 200) # 從1到20均勻取200個數(shù)
y = np.random.randn(200) # 在標準正態(tài)分布中隨機取200個數(shù)
plt.scatter(x,y,s=10,c='r',label='散點圖繪制') # x,y的數(shù)據(jù)規(guī)模必須要相同
plt.legend()
# 設置參考區(qū)域
plt.axvspan(5, 10, facecolor='b', alpha=0.2)
plt.axhspan(-1, 1, facecolor='g', alpha=0.2)
plt.show()
```

##### 4.效果

截屏2021-09-14 上午11.59.15

### annotate()函數(shù)

##### 1.函數(shù)功能

annotate用于在圖形上給數(shù)據(jù)添加文本注解,而且支持帶箭頭的劃線工具,方便我們在合適的位置添加描述信息。

##### 2.參數(shù)說明

> annotate(s, xy, \*args, **kwargs)*

- **s:**注釋文本的內(nèi)容

- **xy:**被注釋的坐標點,二維元組形如(x,y)

- **xytext:**注釋文本的坐標點,也是二維元組,默認與xy相同

- weight:注釋的文本的粗細風格

- color:注釋文本的顏色

- **xycoords:**被注釋點的坐標系屬性,允許輸入的值如下

- | 屬性值 | 含義 |
| :---------------- | :----------------------------------------------------------- |
| 'figure points' | 以繪圖區(qū)左下角為參考,單位是點數(shù) |
| 'figure pixels' | 以繪圖區(qū)左下角為參考,單位是像素數(shù) |
| 'figure fraction' | 以繪圖區(qū)左下角為參考,單位是百分比 |
| 'axes points' | 以子繪圖區(qū)左下角為參考,單位是點數(shù)(一個figure可以有多個axex,默認為1個) |
| 'axes pixels' | 以子繪圖區(qū)左下角為參考,單位是像素數(shù) |
| 'axes fraction' | 以子繪圖區(qū)左下角為參考,單位是百分比 |
| 'data' | 以被注釋的坐標點xy為參考 (默認值) |
| 'polar' | *不使用本地數(shù)據(jù)坐標系,使用極坐標系* |

- **textcoords** :注釋文本的坐標系屬性,默認與xycoords屬性值相同,也可設為不同的值。

- **arrowprops:**箭頭的樣式,dict(字典)型數(shù)據(jù),如果該屬性非空,則會在注釋文本和被注釋點之間畫一個箭頭。如果不設置`'arrowstyle'` 關鍵字,則允許包含以下關鍵字:

| 關鍵字 | 說明 |
| :--------- | :-------------------------------------------------- |
| width | 箭頭的寬度(單位是點) |
| headwidth | 箭頭頭部的寬度(點) |
| headlength | 箭頭頭部的長度(點) |
| shrink | 箭頭兩端收縮的百分比(占總長) |
| ? | 任何 `matplotlib.patches.FancyArrowPatch中的關鍵字` |

##### 3. 實例代碼

```python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['Simhei']
# 中文情況下 負號顯示會有異常 所以還需要設置負號的操作
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(1, 20, 100) # 生成100個從0.01到12的均勻數(shù)值
y = np.cos(x) # 余弦函數(shù)
plt.plot(x,y,ls='-',color='r',lw=2,label='plot繪圖') # 設置繪圖屬性
plt.legend()
plt.annotate('maxvalue', # 圖形注釋的文本
xy=(np.pi*2,1.0), # 被注釋的圖形內(nèi)容坐標
xytext=(8,0.75), # 注釋文本位置坐標
weight='bold', # 注釋文本字體粗細
color='c', # 注釋文本字體顏色,洋紅色
arrowprops=dict(arrowstyle='->',connectionstyle='arc3',color='c')) # 箭頭的屬性
plt.show()
```

##### 4. 效果

截屏2021-09-14 下午12.06.49

### text()函數(shù)

##### 1.函數(shù)功能

通過函數(shù)方式,向axes對象添加text文本對象,確切的說是向 axes的(x,y)位置添加文本,返回一個text實例。

##### 2.參數(shù)說明

> matplotlib.pyplot.text(x, y, s, fontdict=None, withdash=False, **kwargs)

- x:注釋位置的橫坐標

- y:注釋位置的縱坐標

- s:注釋的文本內(nèi)容

- kwargs:可以設置如下

fontsize設置字體大小,默認12,可選參數(shù) [‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’,‘x-large’, ‘xx-large’]

fontweight設置字體粗細,可選參數(shù) [‘light’, ‘normal’, ‘medium’, ‘semibold’, ‘bold’, ‘heavy’, ‘black’]

fontstyle設置字體類型,可選參數(shù)[ ‘normal’ | ‘italic’ | ‘oblique’ ],italic斜體,oblique傾斜

verticalalignment設置水平對齊方式 ,可選參數(shù) : ‘center’ , ‘top’ , ‘bottom’ ,‘baseline’

horizontalalignment設置垂直對齊方式,可選參數(shù):left,right,center

rotation(旋轉(zhuǎn)角度)可選參數(shù)為:vertical,horizontal 也可以為數(shù)字

alpha透明度,參數(shù)值0至1之間

backgroundcolor標題背景顏色

bbox給標題增加外框 ,常用參數(shù)如下:

boxstyle方框外形
facecolor(簡寫fc)背景顏色
edgecolor(簡寫ec)邊框線條顏色

##### 3. 實例代碼

```python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['Simhei']
# 中文情況下 負號顯示會有異常 所以還需要設置負號的操作
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(1, 20, 100)
y = np.tan(x)
plt.plot(x,y,ls='-.',lw=1,c='#aa88ff',label='text使用繪圖')
plt.legend()
plt.text(2,-200,'y=tan(x)',weight='bold',color='r')
plt.show()
```

##### 4.效果

截屏2021-09-14 下午12.16.12

### title()函數(shù)

##### 1.函數(shù)功能

用來設置圖表的標題。

2.參數(shù)說明

> matplotlib.pyplot.title(label, fontdict=None, loc='center', pad=None, **kwargs)

- **label:**str, 標題文本
- **fontdict:** dict, 一個字典用來控制標題的字體樣式,默認值如下:

```bash
{'fontsize': rcParams['axes.titlesize'],
'fontweight' : rcParams['axes.titleweight'],
'verticalalignment': 'baseline',
'horizontalalignment': loc}
```

- **loc:** str, 標題水平樣式可為{'center', 'left', 'right'},分別表示居中,水平居左和居右,默認為水平居中。
- **pad:** float, 表示標題離圖表頂部的距離,默認為None.
- **kwargs:** 可以設置一些其他的文本屬性。

##### 3. 實例代碼

```python
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['Simhei']
# 中文情況下 負號顯示會有異常 所以還需要設置負號的操作
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(1, 10, 100)
y = np.cos(x)
plt.plot(x,y,ls='-.',lw=1,c='#aa88ff',label='title使用繪圖')
plt.legend()
plt.title('cos(x)繪圖')
plt.show()
```

##### 4. 效果

截屏2021-09-14 下午12.19.59

### legend()函數(shù)

##### 1.函數(shù)功能

顯示圖表圖例,并設置圖例位置

##### 2.參數(shù)說明

> matplotlib.pyplot.legend(*args, **kwargs)

- loc : 圖例所有figure位置

| 位置字符串 | 含義 | 位置代碼 |
| :------------: | :--------------: | :------: |
| 'best' | 自動尋找最佳位置 | 0 |
| 'upper right' | 右上 | 1 |
| 'upper left' | 左上 | 2 |
| 'lower left' | 左下 | 3 |
| 'lower right' | 右下 | 4 |
| 'right' | 右 | 5 |
| 'center left' | 左中 | 6 |
| 'center right' | 右中 | 7 |
| 'lower center' | 中下 | 8 |
| 'upper center' | 中上 | 9 |
| 'center' | 正中 | 10 |

- prop : 字體參數(shù)

- fontsize: 字體大小

- markerscale : 圖例標記與原始標記的相對大小

- markerfirst:如果為True,則圖例標記位于圖例標簽的左側(cè)

- numpoints:為線條圖圖例條目創(chuàng)建的標記點數(shù)

- scatterpoints:為散點圖圖例條目創(chuàng)建的標記點數(shù)

- scatteryoffsets:為散點圖圖例條目創(chuàng)建的標記的垂直偏移量

- frameon:控制是否應在圖例周圍繪制框架

- fancybox:控制是否應在構成圖例背景的FancyBboxPatch周圍啟用圓邊

- shadow:控制是否在圖例后面畫一個陰影

- framealpha:控制圖例框架的 Alpha 透明度

##### 3. 實例代碼

```dart
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.1,10,100)
y = np.sin(x)
z = np.cos(x)
plt.plot(x,y,ls='-',lw=1,c='m',label='legend繪圖1')
plt.plot(x,z,ls='-.',lw=1,c='g',label='legend繪圖2')
plt.legend(loc='lower right')
plt.show()
```

##### 4. 效果

截屏2021-09-14 下午12.25.40

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
反欺詐中所用到的機器學習模型有哪些?

一、邏輯回歸模型邏輯回歸是一種常用的分類模型,特別適合處理二分類問題。在反欺詐中,邏輯回歸可以用來預測一筆交易是否是欺詐。二、決策樹模...詳情>>

2023-10-14 14:09:29
軟件開發(fā)管理流程中會出現(xiàn)哪些問題?

一、需求不清需求不明確是導致項目失敗的主要原因之一。如果需求沒有清晰定義,開發(fā)人員可能會開發(fā)出不符合用戶期望的產(chǎn)品。二、通信不足溝通問...詳情>>

2023-10-14 13:43:21
軟件定制開發(fā)中的敏捷開發(fā)是什么?

軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個高度關注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應環(huán)境變化...詳情>>

2023-10-14 13:24:57
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個全面的物聯(lián)網(wǎng)開發(fā)平臺,它為眾多硬件平臺和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動備份有什么區(qū)別?

1、定義和目標不同云快照的主要目標是提供一種快速恢復數(shù)據(jù)的方法,它只記錄在快照時間點后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動備份的主要目標...詳情>>

2023-10-14 12:48:59