1. 程式人生 > >Python畫二維圖和三維圖

Python畫二維圖和三維圖

轉載地址1:https://blog.csdn.net/frankfrankflb/article/details/79338632

轉載地址2:https://jingyan.baidu.com/article/90bc8fc8ae31acf653640cd0.html

 

  •  二維影象

from matplotlib import pyplot as plt  
import numpy as np  

low=lambda x:10000 if x>10000 else -10000 if x<-10000 else x

f=lambda x:x**5#設計一個函式

start=-10 #輸入需要繪製的起始值(從左到右)
stop=10 #輸入需要繪製的終點值
step=0.01#輸入步長


num=(stop-start)/step #計算點的個數
x = np.linspace(start,stop,num)
y = f(x)

for i in range(len(y)):#再應用一個low函式以防止函式值過大導致顯示錯誤(可選)#若函式無法直接應用到np陣列上可以使用for來逐個應用
    y[i]=low(y[i])
z=y

fig=plt.figure(figsize=(6,6))#建立一個物件並設定窗體的大小,使其為正方形,好看 #注意 可以建立多個物件,但plt指令只會對最後一個指定的物件進行操作(檢視過原始碼了)

plt.plot(x, y,label='First Curve')#在當前的物件上進行操作




plt.grid(True)#顯示網格

plt.axis("equal")#設定了x、y刻度長度一致#需要放在x、ylim指令前
plt.xlim((-10, 10))#顯示的x的範圍(不設定則由程式自動設定)
plt.ylim((-10, 10))#顯示的y的範圍

plt.plot([2*min(x),2*max(x)], [0,0],label='x-axis')#用定義域最長距離的兩倍作出x軸
plt.plot([0,0],[2*min(y),2*max(y)],label='y-axis')#用值域最長距離的兩倍作出y軸
plt.legend()#顯示旁註#注意:不會顯示後來再定義的旁註
plt.show(fig)#沒有輸入值預設展示所有物件 #注意:plt.show()之後再次使用plt.show()指令將不會展示任何物件,若想再次展示物件,可以對物件使用fig.show()

三維影象

from matplotlib import pyplot as plot #用來繪製圖形

import numpy as np  #用來處理資料

from mpl_toolkits.mplot3d import Axes3D  #用來給出三維座標系。
figure = plot.figure()

#畫出三維座標系:

axes = Axes3D(figure)


X = np.arange(-10, 10, 0.25)

Y = np.arange(-10, 10, 0.25)

#限定圖形的樣式是網格線的樣式:

X, Y = np.meshgrid(X, Y)

Z = 3*(X)**2 + 2*(Y)**2 + 5

#繪製曲面,採用彩虹色著色:

axes.plot_surface(X, Y, Z,cmap='rainbow')


#圖形視覺化:

plot.show()