python中利用matplotlib繪圖可視化知識概括

python中利用matplotlib繪圖可視化知識概括:python

(1)matplotlib圖標正常顯示中文數組

import matplotlib.pyplot as pltdom

plt.rcParams['font.sans-serif']=['simhei']   #用於正常顯示中文標籤函數

plt.rcParams['axes.unicode_minus']=False     #用於正常顯示負號字體

(2)統計做圖函數:this

  •  plt.plot()繪製線性二維圖,折線圖

注意:若是向plot()指令提供了一維的數組或者列表,則matplotlib將默認它是一系列的y值,而且自動爲其生成x的值。默認的x向量從0開始而且具備和y一樣的長度。spa

  •   plt.bar() 繪製條形圖
  •  plt.scatter() 繪製散點圖
  •  plt.hist() 繪製二維條形直方圖,顯示數據的分配狀況
  •  plt.pie() 繪製餅圖
  •  plt.boxplot() 繪製箱形圖

(3)爲項目設置matplotlib參數debug

 在代碼執行過程當中,有兩種方式能夠更改參數:code

  1. 使用參數字典(rcParams
  2. 調用matplotlib.rc()命令,經過傳入關鍵字元組,修改參數

若是不想每次使用matplotlib時都在代碼部分進行配置,能夠修改matplotlib的文件參數。能夠用matplot.get_config()命令來找到當前用戶的配置文件目錄。對象

配置文件包括如下配置項:

  • figure: 控制dpi、邊界顏色、圖形大小、和子區( subplot)設置 
  • font: 字體集(font family)、字體大小和樣式設置 
  • grid: 設置網格顏色和線性 
  • legend: 設置圖例和其中的文本的顯示 
  • line: 設置線條(顏色、線型、寬度等)和標記
  • xticks和yticks: 爲x,y軸的主刻度和次刻度設置顏色、大小、方向,以及標籤大小。
  • axex: 設置座標軸邊界和表面的顏色、座標刻度值大小和網格的顯示 
  • backend: 設置目標暑促TkAgg和GTKAgg 
  • patch: 是填充2D空間的圖形對象,如多邊形和圓。控制線寬、顏色和抗鋸齒設置等。
  • savefig: 能夠對保存的圖形進行單獨設置。例如,設置渲染的文件的背景爲白色。
  • verbose: 設置matplotlib在執行期間信息輸出,如silent、helpful、debug和debug-annoying

(4)線條相關屬性標記設置

線條形狀設置:  linestyle

 marker:對座標點標記(線條標記)

(5)顏色設置

 調用matplotlib.pyplot.colors()能夠獲得matplotlib支持的全部顏色。

其中,k表示黑色、m表示洋紅色、c表示青色、w表示白色。

背景色:matplotlib.pyplot.axes() 或者 matplotlib.pyplot.subplot()提供一個axisbg參數,能夠指定座標中的顏色。

(6)修改座標範圍

默認狀況下,座標軸的最大值和最小值與輸入數據的最小、最大值一致。

plt.axis(xmin,xmax,ymin,ymax) 給定了座標範圍

xlim(xmin,xmax)和ylim(ymin,ymax)來調整x,y的座標範圍

(7)設置軸標記plt.xticks()/plt.yticks():人爲設置座標軸的刻度顯示的值

實例:

import matplotlib.pyplot as plt

import numpy as np

plt.figure(figsize=(8,6), dpi=80)                                           # 建立一個新的 1 * 1 的子圖,接下來的圖樣繪製在其中的第 1 塊(也是惟一的一塊)

plt.subplot(1,1,1)

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)

C,S = np.cos(X), np.sin(X)

plt.plot(X, C, color="blue", linewidth=1.0, linestyle="-")              # 繪製餘弦曲線,使用藍色的、連續的、寬度爲 1 (像素)的線條

plt.plot(X, S, color="r", lw=4.0, linestyle="-")                              # 繪製正弦曲線,使用綠色的、連續的、寬度爲 1 (像素)的線條

plt.axis([-4,4,-1.2,1.2])                                                                 #給定座標軸的範圍

                                                                                                # 設置軸記號

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],

[r'$-1$', r'$0$', r'$+1$'])    #注意:這裏設置記號時,同時設置了記號的標籤。使用了LaTeX

plt.show()   

                                                                                   

 

(8)疊加圖:用一條指令畫出多條不一樣格式的線

示例:

import matplotlib.pyplot as plt

import numpy as np

t = np.arange(0., 5., 0.2)

plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')

plt.show()

                                                               

(9)建立子圖plt.subplot()

首先經過plt.figure()建立一張新的圖,以後用plt.subplot()建立子圖。

其中subplot()指令包含行數、列數和圖像編號,其中圖像編號的範圍是從1到行數 * 列數。

import matplotlib.pyplot as plt

plt.figure(1)              # 第一張圖

plt.subplot(211)           # 第一張圖中的第一張子圖

plt.plot([1,2,3])

plt.subplot(212)           # 第一張圖中的第二張子圖

plt.plot([4,5,6])

plt.figure(2)              # 第二張圖

plt.plot([4,5,6])          # 默認建立子圖subplot(111)

plt.figure(1)             # 切換到figure 1 ; 子圖subplot(212)仍舊是當前圖

plt.subplot(211)             # 令子圖subplot(211)成爲figure1的當前圖

plt.title('Easy as 1,2,3')     # 添加subplot 211 的標題

   

 (10)plt.text()添加文字說明

Text語法說明:

text(x,y,string,fontsize=15,verticalalignment="top",horizontalalignment="right")   

其中:

           x,y:表示座標值上的值

           string:表示說明文字

          fontsize:表示字體大小

          verticalalignment:垂直對齊方式 ,參數:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ]

          horizontalalignment:水平對齊方式 ,參數:[ ‘center’ | ‘right’ | ‘left’ ]

          arrowprops  #箭頭參數,參數類型爲字典dict    參數:width點箭頭的寬度headwidth在點的箭頭底座的寬度headlength點箭頭的長度shrink 總長度爲分數「縮水」從兩端facecolor箭頭顏色

           bbox給標題增長外框    其中經常使用參數: boxstyle方框外形facecolor(簡寫fc)背景顏色edgecolor(簡寫ec)邊框線條顏色edgewidth邊框線條大小

示例:

import matplotlib.pyplot as plt

plt.text(0.6, 0.5, "test", size=50, rotation=30.,ha="center", va="center",bbox=dict(boxstyle="round",ec=(1., 0.5, 0.5),fc=(1., 0.8, 0.8),))

plt.text(0.5, 0.4, "test", size=50, rotation=-30.,ha="right", va="top",bbox=dict(boxstyle="square",ec=(1., 0.5, 0.5),fc=(1., 0.8, 0.8),))

plt.draw()

plt.show()

                                                         

(12)文本註釋annotate()

格式:annotates=’str’,xy=(x,y),xytext=(i1,i2),;...

annotate()參數設置箭頭指示的位置,xytext參數設置註釋文字的位置

---arrowprops參數以字典的形式設置箭頭的樣式

---width參數設置箭頭長方形部分的寬度,headlength參數設置箭頭尖端的長度

---headwidth參數設置箭頭尖端底部的寬度,shrink參數設置箭頭頂點、尾部與指示點、註釋文字的距離(比例值)'''

示例以下:

import numpy as np

import matplotlib.pyplot as plt

plt.figure(figsize=(6, 6))

x = np.random.randint(0, 10, size=10)

x[5] = 30                                                               # x中索引值爲5的從新賦值

plt.plot(x)

plt.ylim([-2, 35])

# plt.annotate(s="this point is important", xy=(5, 30), xytext=(6, 31),arrowprops={"width": 2, "headlength": 5, "headwidth": #5, "shrink": 0.1})

plt.annotate(s="this point is important", xy=(5, 30), xytext=(6, 31),arrowprops={"arrowstyle":"->"})     # 若是arrowprops中有arrowstyle,就不該該有其餘的屬性,xy表明的是箭頭的位置,xytext表明的是箭頭文本的位置。

plt.show()

                                                                                         

(13)plt.title()設置圖像標題

title經常使用參數:fontsize設置字體大小、fontweight設置字體粗細、fontstyle設置字體類型、verticalalignment設置水平對齊方式 可選數:  'center' , 'top' , 'bottom' ,'baseline'

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

rotation(旋轉角度)可選參數爲:vertical,horizontal 也能夠爲數字

alpha透明度,參數值0至1之間

backgroundcolor標題背景顏色

(14)Matplotlib中的fill_between()函數總結

示例:曲線覆蓋

import numpy as np

import matplotlib.pyplot as plt

x = np.array([i for i in range(30)])

y = np.random.rand(30)

plt.plot(x, y)

plt.fill_between(x, 0, y, facecolor='green', alpha=0.3)

plt.show()

注意:fill_between()函數中的幾個參數:

                                                               x:第一個參數表示覆蓋的區域,直接複製爲x,表示整個x都覆蓋

                                                              0:表示覆蓋的下限

                                                              y: 表示覆蓋的上限是y這個曲線

                                                              facecolor:覆蓋區域的顏色

                                                              alpha:覆蓋區域的透明度[0,1],其值越大,表示越不透明

                                                                                        

部分區域覆蓋plt.fill_between(x[2:15], 0.2, 0.6, facecolor='green', alpha=0.3)

兩曲線之間的覆蓋

y1 = np.random.rand(30)

y2 = y1 + 0.3

plt.plot(x, y1,'b',x,y2,'r')

plt.fill_between(x, y1, y2, facecolor='green', alpha=0.3)

                                                                            

示例:想要實現循環填充想要填充的部分,設置填充的上下限的功能

import numpy as np

import matplotlib.pyplot as plt

x = np.array([i for i in range(30)])

print(x)

y = np.random.rand(30)

# 設置想要高亮數據的位置

position = [[1, 6],

            [10, 12],

            [20, 23],

            [26, 28]]

print(position)

# 畫圖

plt.plot(x, y, 'r')

for i in position:

    print(i)                                           #輸出結果i爲:[1, 6], [10, 12], [20, 23], [26, 28]

    print(x[i[0]:i[1]])                                #結果爲:[1 2 3 4 5]     [10 11]    [20 21 22]     [26 27]

    plt.fill_between(x[ i[0] : i[1] ], 0, 1, facecolor='green', alpha=0.3)

plt.show() 

                                                  

相關文章
相關標籤/搜索