python - matplotlib demo

平面圖繪製
from matplotlib import pyplot as plt
import numpy as np
# linspace(x, y)產生一個有100個元素的行向量,其中的元素在區間[x, y]中等間隔分佈。
# linspace(x, y, n)產生x和y之間等間隔的n個數,如果n = 1,返回結果爲y。

x = np.linspace(-np.pi,np.pi)
plt.plot(x,np.cos(x),color='red')
plt.show()

# 顏色:英文字母、RGB數值、十六進制顏色等表示
# 線條樣式 :(點狀線) 、 -(實線)
# 點樣式:.(圓點) 、 s (方形) 、 o(圓形)
x = np.linspace(0,2*np.pi,50)
plt.plot(x,np.sin(x),'c:' ,
         x,np.sin(x-np.pi/2),'b-.') # b-. 分別代表 顏色(藍色)、線條樣式(實線)、點樣式(圓點)
plt.show()


x = np.random.randn(20)
y = np.random.randn(20)
x1 = np.random.randn(40)
y1 = np.random.randn(40)
# 繪製散點圖
plt.scatter(x,y,s=50,color='b',marker='<',label='S1') # s爲散點尺寸
plt.scatter(x1,y1,s=50,color='y',marker='o',alpha=0.2,label='S2') # alpha爲透明度
plt.grid(True)  # 打開網格效果
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.legend()    # 圖例
plt.title('My Scatter')
plt.show()


# 將多個圖表放置於一張圖中
x = np.linspace(0,2*np.pi,50)
plt.subplot(2,2,1)  # 子圖總行數、列數、活躍區域id
plt.plot(x,np.sin(x),'b',label='sin(x)')
plt.legend()
plt.subplot(2,2,2)
plt.plot(x,np.cos(x),'r',label='cos(x)')
plt.legend()
plt.subplot(2,2,3)
plt.plot(x,np.exp(x),'k',label='exp(x)')
plt.legend()
plt.subplot(2,2,4)
plt.plot(x,np.arctan(x),'y',label='arctan(x)')
plt.legend()

plt.show()


# 條形圖
x = np.arange(12)
y = np.random.rand(12)
labels = ['1','2','3','4','5','6','7','8','9','10','11','12']
plt.bar(x,y,color='blue',tick_label=labels)
# plt.barh(x,y,color='blue',tick_label=labels) # 橫條
plt.title('bar graph')
plt.show()

# 餅圖
size = [20,20,20,40]    # 各部分比例
plt.axis(aspect=1)
explode = [0.02,0.02,0.02,0.05] # 突出顯示
plt.pie(size,labels=['A','B','C','D'],autopct='%.0f%%',explode=explode,shadow=True)
plt.show()

# 直方圖
x = np.random.randn(1000)
plt.hist(x,200)
plt.show()

子圖
在這裏插入圖片描述
餅圖
在這裏插入圖片描述

3D圖繪製
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()  # 定義figure
ax = Axes3D(fig)
x = np.arange(-2,2,0.1)
y = np.arange(-2,2,0.1)
X , Y = np.meshgrid(x,y) # 生成網格數據
Z = X ** 2 + Y ** 2
ax.plot_surface(X,Y,Z,cmap=plt.get_cmap('rainbow')) # 繪製3D曲面
ax.set_zlim(-1,10)  # z軸區間
plt.title('3D graph')
plt.show()

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章