matplotlib簡單使用
阿新 • • 發佈:2018-12-11
使用matplotlib可以繪製許多的圖形今天給大家簡單介紹一下 下面的程式碼有很詳細的註釋,我就不過多解釋了
import matplotlib.pyplot as plt import numpy as np from matplotlib import font_manager plt.rcParams['font.sans-serif'] = ['SimHei'] # # my_font = font_manager.FontProperties(fname='C:\Windows\Fonts') X = np.linspace(-np.pi,np.pi,100) plt.figure(figsize=(6,5)) plt.subplot(111)# 第一個引數表示行,第二個引數表示列,第三個引數表示當前位於圖例中的位置 Y = np.sin(X) plt.xlabel(u'X數值') plt.ylabel(u'Y數值') plt.title('函式影象') # 新增文字:第一個引數是軸座標,第二個引數是Y軸座標,以資料的刻度為基礎 plt.text(0.0,0.5,'dont move') # 新增標註 # xy:標註箭頭想要指示的點,xytext:描述資訊的座標 plt.annotate('note!!',xy=(-np.pi,0),xytext=(-np.pi,2),fontsize=16, arrowprops=dict(facecolor='black',shrink=0.01)) plt.plot(X,Y,c='r',lw=3,ls=':',label='X2函式') plt.xlim(-np.pi,np.pi) plt.ylim(-1,1) plt.legend() plt.show()
柱狀圖:
k = 10 x = np.arange(k) y = np.random.rand(k) for i in range(10): plt.text(x[i],y[i],'%.2f' % y[i],ha='center',va='bottom') plt.annotate('note!!', xy=(3,y[3] ), xytext=(3,y[3]+0.3), fontsize=16, arrowprops=dict(facecolor='black',shrink=0.01)) plt.bar(x,y) plt.legend() plt.show()
柱狀圖的複雜形式
a = ['猩球崛起3:終極之戰','敦刻爾克','蜘蛛俠:英雄歸來','戰狼2'] b_16 = [15746,312,4497,319] b_15 = [12357,156,2045,168] b_14 = [2358,399,2358,362] bar_width = 0.2 x_14 = list(range(len(a))) x_15 = [i+bar_width for i in x_14] x_16 = [i+bar_width*2 for i in x_14] # 設定圖形大小 plt.figure(figsize=(20,8),dpi=80) ax = plt.subplot(2,1,1) ax.set_title('Counter') ax.set_xlabel("X") plt.bar(range(len(a)),b_14,width=bar_width,label='9月14日') plt.bar(x_15,b_15,width=bar_width,label='9月15日') plt.bar(x_16,b_16,width=bar_width,label='9月16日') plt.legend() plt.xticks(x_15,a) plt.show()
大家在自己寫程式碼的時候會發現,這張圖一共畫了三次,每次畫一種顏色的柱狀圖 matplotlib還可以畫出3D圖,但是這裡就不做太多的解釋,下次給大家介紹一個更加方便快捷的畫圖工具pyecharts,直接pip install pyecharts 就可以下載