1. 程式人生 > 其它 >Matplotlib基礎

Matplotlib基礎

1、曲線圖

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  #顯示中文標籤
plt.rcParams['axes.unicode_minus'] = False
#準備資料
X = np.linspace(-np.pi, np.pi, 256)
C,S = np.cos(X), np.sin(X)
#設定畫布大小及解析度
fig=plt.figure(figsize=(15,7), dpi=100)
#畫曲線,設定線顏色,線寬度,線型別
plt.plot(X,C,color="r", linewidth=2.0, linestyle="-",label="cos")
plt.plot(X,S,label="sin",color="r",alpha=1.00)
#設定座標軸
plt.xlim(-np.pi, np.pi)  #設定座標軸顯示範圍
plt.ylim(-1.1,1.2)
plt.xticks(np.linspace(-np.pi, np.pi, 5),[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'])
plt.yticks([-1,1])     #設定座標軸顯示內容
plt.xlabel("X軸",verticalalignment='baseline',fontsize=24)     #設定座標軸標籤
#設定脊柱
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))
#新增圖例,與畫圖中的引數配合
plt.legend(loc='upper left')
#添加註釋
t = 2*np.pi/3
plt.plot([t,t],[0,np.sin(t)], color ='blue', linewidth=2.5, linestyle="--")  #畫垂直虛線
plt.scatter([t,],[np.sin(t),], 50, color ='blue')   #畫點
plt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
         xy=(t, np.sin(t)), xycoords='data',
         xytext=(+10, +30), textcoords='offset points', fontsize=16,
         arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.1"))  #畫註釋
#調整座標軸標籤
for label in ax.get_xticklabels() + ax.get_yticklabels():
    label.set_fontsize(20)
    label.set_bbox(dict(facecolor='w', edgecolor='None', alpha=0.4 ))
#畫子圖
x=np.arange(1,100)
ax1=fig.add_subplot(3,4,11)
ax1.plot(x,x*x)
#儲存圖片
plt.savefig("exercice_2.png",dpi=100)
#顯示圖片
plt.show()

2、3D圖

from pylab import *
from mpl_toolkits.mplot3d import Axes3D

fig = figure(figsize=(15,7), dpi=100)
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.2)
Y = np.arange(-4, 4, 0.2)
X, Y = np.meshgrid(X, Y)   #畫網格
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
#畫圖
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='hot')
show()