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()

cpp 調用python matplotlib畫圖_數據可視化

 

 圖像標註

方法

描述

 

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()

cpp 調用python matplotlib畫圖_柱狀圖_02

 

 支持的圖類型

函數

説明

 

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()

cpp 調用python matplotlib畫圖_數據可視化_03

 

 三.餅圖

餅圖是計算某一範圍內數據的百分比,那麼先要切分統計每個範圍內的數據百分比

先切分,使用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')