AI小知識系列(四) Matplotlib常用操作

Matplotlib常用操作

import matplotlib.pyplot as plt
import numpy as np

1.折線圖

x_axis = [5,8,9,11,14,16,18,19]
y_axis1= [19,18,16,14,11,8,9,5]
y_axis2= [20,19,17,15,12,9,10,6]
plt.plot(x_axis,y_axis1, c = "r", label = "red")
plt.plot(x_axis,y_axis2, c = "b", label = "blue")
#美化圖的操作
plt.xticks(rotation = 45)  #使x軸的數字旋轉45°
plt.xlabel("this is x_axis") #x軸標籤
plt.ylabel("this is y_axis") #y軸標籤
plt.title("this is title") #此圖像的標題
plt.legend(loc = "best") #爲圖像生成legend,loc參數爲best指,在最適合的地方顯示

plt.show()

在這裏插入圖片描述

#plt.plot的常用參數如下
plt.plot(x_axis,y_axis1, c = "r", label = "red",linestyle='--',marker='*',linewidth=2)
#c---顏色參數,可選擇'b'(藍),'g'(綠),'r'(紅),'c'(藍綠),'m'(紅),'y'(黃),'k'(黑),'w'(白)
#label---折線的標籤,用作legend的顯示
#linestyle---折現的樣式,默認爲None,可選擇'-','--','-.',':'
#marker---點的樣式,默認None,可選擇'o'(圓)  '.'(點)  'v'(下三角)  '^'  '*'(五角星) 'x'(叉號)等
#linewidth -- 線寬

在這裏插入圖片描述

2.保存繪製的圖像

#保存圖像
##在plt.plot運行後,使用plt.savefig,不能再plt.show之後再用,否則只能保存空圖像
plt.savefig("examples.jpg")

3.matplotlib輸出中文問題

from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默認字體
mpl.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示爲方塊的問題

4.繪圖中的其他的操作

# 設置座標軸的取值範圍
plt.xlim((-1, 1))
plt.ylim((0, 2))

#設置刻度
##設置x座標軸刻度, 原來爲0.25, 修改後爲0.5
plt.xticks(np.linspace(0, 20, 5))
##設置y座標軸刻度及標籤, $$是設置字體
plt.yticks([10, 15], ['$minimum$', 'normal'])

#關閉座標軸的顯示
plt.axis('off')

#legend的複雜操作
l1, =plt.plot(x_axis,y_axis1, c = "r", label = "red")
l2, =plt.plot(x_axis,y_axis2, c = "b", label = "blue")
plt.legend(handles = [l1, l2,], labels = ['red', 'blue'], loc = 'best')

#設置繪圖風格
plt.style.available  #查看可用的繪圖風格
plt.style.use("bmh") #使用某一個名叫bmh的繪圖風格

5.子圖–subplot講解

plt.subplot(2,1,1)  #構建一個2行1列的子圖,此處在第一個子圖進行繪製
plt.plot(x_axis,y_axis1, c = "r", label = "red")
plt.title("this is title") #此圖像的標題
plt.legend(loc = "best") #爲圖像生成legend,loc參數爲best指,在最適合的地方顯示

plt.subplot(2,1,2)  #此處在第二個子圖進行繪製
plt.plot(x_axis,y_axis2, c = "b", label = "blue")
plt.xlabel("this is x_axis") #x軸標籤
plt.legend(loc = "best") #爲圖像生成legend,loc參數爲best指,在最適合的地方顯示

plt.show()
#兩幅圖像採用不同的配置

在這裏插入圖片描述


6.條形圖繪製

X = [1, 2, 3, 4, 5, 6] #每條bar的位置
Y1 = [2,3,6,1,7,8] #每條bar的高度值
plt.bar(X, Y1, label='blue')

plt.xlabel("this is x_axis") #x軸標籤
plt.ylabel("this is y_axis") #y軸標籤
plt.title("this is title") #此圖像的標題
plt.legend(loc = "best") #爲圖像生成legend,loc參數爲best指,在最適合的地方顯示

plt.show()

在這裏插入圖片描述

plt.bar(X,Y1,alpha=0.5,width=0.8,color='b',edgecolor='r',label='blue',linewidth=3)
#alpha---透明度,1代表不透明,0代表全透明。
#width---柱子的寬度
#color---柱狀圖填充的顏色,可採取的顏色同上
#edgecolor---圖形邊緣的顏色,可採取的顏色同上
#label---圖像的標籤
#linewidth---邊緣的寬度

在這裏插入圖片描述

plt.barh()  #橫着來顯示數據
plt.barh(X,Y1,alpha=0.5,width=0.8,color='b',edgecolor='r',label='blue',linewidth=3)

在這裏插入圖片描述

7.散點圖的繪製

x_axis = [5,8,9,11,14,16,18,19]
y_axis1= [19,18,16,14,11,8,9,5]
y_axis2= [20,19,17,15,12,9,10,6]
plt.scatter(x_axis, y_axis1,color='r',label='red')
plt.scatter(x_axis, y_axis2,color='b',label='blue')

plt.xlabel("this is x_axis") #x軸標籤
plt.ylabel("this is y_axis") #y軸標籤
plt.title("this is title") #此圖像的標題
plt.legend(loc = "best") #爲圖像生成legend,loc參數爲best指,在最適合的地方顯示

plt.show()

#plt.scatter的參數同plt.plot,不在贅述

在這裏插入圖片描述


8.直方圖的繪製

#直方圖用來統計數據出現的頻率
Y=[1,1,2,2,2,3,3,4,4,4,4,5,5]
plt.hist(Y)
plt.show()

在這裏插入圖片描述

plt.hist(Y,alpha=0.8,facecolor='b')
#range---默認None,選擇直方圖顯示的範圍
#bins---指定我們顯示的直方圖的邊界
#alpha---透明度
#facecolor---直方圖顏色
#histtype---直方圖類型,可選‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’
#繪製直方圖的高級操作---一次繪製多個
data = [np.random.randint(0, n, n) for n in [3000, 4000, 5000]]
labels = ['3K', '4K', '5K']
bins = [0, 100, 500, 1000, 2000, 3000, 4000, 5000]
#bins數組用來指定我們顯示的直方圖的邊界,即:[0, 100) 會有一個數據點,[100, 500)會有一個數據點,以此類推。所以最終結果一共會顯示7個數據點。同樣的,我們指定了標籤和圖例。

plt.hist(data, bins=bins, label=labels,color=['r','g','b'])
plt.legend()

plt.show()
#此處引用 https://blog.csdn.net/hiudawn/article/details/80373996

在這裏插入圖片描述


9.盒圖

Y=[1,1,2,2,2,3,3,4,4,4,4,5,5]
plt.boxplot(Y)
plt.show()

在這裏插入圖片描述


10.餅狀圖

labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
data = [1, 2, 3, 4, 5, 6, 7]  
plt.pie(data, labels=labels, autopct='%1.2f%%')  # 第一個參數是佔比,第二個各自的標籤,第三個是顯示精度

plt.axis('equal')  #調整一下圖
plt.legend(loc='best')

plt.show()
#此處引用 https://blog.csdn.net/hiudawn/article/details/80373996

在這裏插入圖片描述

plt.pie(data,labels=labels,explode=[0.1 for i in range(7)], startangle=90,shadow=True,autopct='%1.2f%%')
#lablels---每一塊的標籤
#explode---每一塊離中心的距離
#startangle---起始繪製角度,默認圖是從x軸正方向逆時針畫起,如設定=90則從y軸正方向畫起
#shadow---是否有陰影
#labeldistance---label繪製位置,相對於半徑的比例, 如<1則繪製在餅圖內側
#autopct---顯示精度
#pctdistance---類似於labeldistance,指定autopct的位置刻度
#radius---控制餅圖的半徑

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章