1. 程式人生 > >matplotlib簡單使用

matplotlib簡單使用

使用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 就可以下載