Matplotlib是一個強大的Python繪圖和數據可視化的工具包。數據可視化也是我們數據分析的最重要的工作之一,可以幫助我們完成很多操作,例如:找出異常值、必要的一些數據轉換等。完成數據分析的最終結果也許就是做一個可交互的數據可視化
安裝方式: pip install matplotlib
引用方法:import matplotlib.pyplot as plt
一、plot函數(繪製折線圖)
- 線型linestyle(-,-.,--,..)
- 點型marker(v,^,s,*,H,+,X,D,O,...)
- 顏色color(b,g,r,y,k,w,...)
# 解決亂碼問題(中文不顯示)
plt.rcParams['font.sans-serif'] = ['SimHei']
x = [1,2,3]
y = [2,4,9]
plt.figure(figsize=(20,6)) #設置畫布的大小
plt.title('標題', fontsize=20, color='red') #設置標題
plt.xlabel('x軸', fontsize=15) #設置x軸名稱
plt.ylabel('y軸', fontsize=15) #設置y軸名稱
# plt.plot?
# plt.plot(x,y, color='green', marker='v', linestyle='--')
plt.plot(x, y)
plt.show()
圖像標註
|
方法
|
描述
|
|
|
plt.title()
|
設置圖像標題
|
|
|
plt.xlabel()
|
設置x軸名稱
|
|
|
plt.ylabel()
|
設置y軸名稱
|
|
|
plt.xlim()
|
設置x軸範圍
|
|
|
plt.ylim()
|
設置y軸範圍
|
|
|
plt.xticks()
|
設置x軸刻度
|
|
|
plt.yticks()
|
設置y軸刻度
|
|
|
plt.legend()
|
設置曲線圖例
|
plt.plot([0,3,9,15,30],linestyle = '-.',color = 'r',marker = 'o',label="A")
plt.plot([1,3,16,23,30],[30,23,13,25,30],label='B')
plt.title("Title") # 標題
plt.xlabel('X') # x軸名稱
plt.ylabel('Y') # y軸名稱
plt.xticks(np.arange(0,30,2)) # x軸刻度
plt.xlim(-0.2,10,2) # x軸範圍
plt.legend() # 曲線圖標
plt.show()
支持的圖類型
|
函數
|
説明
|
|
|
plt.plot(x,y,fmt)
|
折線圖
|
|
|
plt.boxplot(data,notch,position)
|
箱型圖
|
|
|
plt.bar(left,height,width,bottom)
|
柱狀圖
|
|
|
plt.barh(width,bottom,left,height)
|
橫向柱狀圖
|
|
|
plt.polar(theta,r)
|
極座標系
|
|
|
plt.pie(data,explode)
|
餅圖
|
|
|
plt.psd(x,NFFT=256,pad_to,Fs)
|
功率譜密度圖
|
|
|
plt.specgram(x,NFFT=256,pad_to,F)
|
譜圖
|
|
|
plt.cohere(x,y,NFFT=256,Fs)
|
X-Y相關性函數
|
|
|
plt.scatter(x,y)
|
散點圖
|
|
|
plt.step(x,y,where)
|
步階圖
|
|
|
plt.hist(x,bins,normed)
|
直方圖
|
二.柱狀圖
x = movies.index #索引值
y = movies.values #數據值
plt.figure(figsize=(15,6)) #設置畫布大小
plt.bar(x, y, color='blue') #柱狀圖用bar
plt.title('每個國家或者地區的電影數量')
plt.xlabel('國家或地區', fontsize=20)
plt.ylabel('電影數量', fontsize=20)
plt.xticks(rotation=90, fontsize=15) #x軸數據旋轉90度
# plt.text?
for a,b in zip(x,y):
plt.text(a, b+100, b, ha='center') #柱狀圖上面的文字
plt.show()
三.餅圖
餅圖是計算某一範圍內數據的百分比,那麼先要切分統計每個範圍內的數據百分比
先切分,使用cut
data = pd.cut(s.astype('float'), [0,60,90,110,1000]).value_counts()
使用pie做餅狀圖
x = data.index
y = data.values
plt.figure(figsize=(10,6))
plt.title('電影時長分佈圖')
patchs, l_text, p_text = plt.pie(y, labels=x, autopct='%0.2f%%', colors='bgry', startangle=90)
for i in p_text:
i.set_size(15)
i.set_color('w') #餅狀圖內百分比樣式設計
for l in l_text:
l.set_size(20)
l.set_color('r') #餅狀圖外範圍設計
plt.show()
四.保存圖表
plt.savefig('123.pdf')