【Python】函数图像绘制:二维图像、三维图像、散点图、心形图
生活随笔
收集整理的這篇文章主要介紹了
【Python】函数图像绘制:二维图像、三维图像、散点图、心形图
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【Python】函數(shù)圖像繪制:二維圖像、三維圖像、散點(diǎn)圖、心形圖
- 所有需要用的包
- 二維圖像
- 三維圖像
- 散點(diǎn)圖繪制
- 心形圖繪制
所有需要用的包
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt
import numpy as np
import random
plt.rcParams['font.sans-serif'] = ['SimHei'] #用來正常顯示中文標(biāo)簽
plt.rcParams['axes.unicode_minus'] = False #用來正常顯示負(fù)號
二維圖像
import numpy as np
import pylab as plt
x = np.arange(-100, 100, 1) #定義x的范圍為-100至100,步長為1
y = x * x
plt.xlabel('x') #繪制X軸
plt.ylabel('y') #繪制Y軸
plt.title("y = x * x") #繪制圖像標(biāo)題
plt.plot(x, y)
plt.show()
三維圖像
圖像方程:z = xx+yy
繪制三維圖像我們需要用到Axes3D庫,調(diào)用ax.plot_surface進(jìn)行繪制,其中plot_surface的參數(shù)如下圖所示
| 參數(shù) | 解釋 |
|---|---|
| X,Y,Z | 坐標(biāo)值參數(shù) |
| rstride | 數(shù)組行距(步長大小) |
| cstride | 數(shù)組列距(步長大小) |
| color | 所有曲面塊顏色 |
| cmap | 所有曲面塊顏色映射 |
| facecolors | 單獨(dú)曲面塊表面顏色 |
| vmin | 映射最小值 |
| vmax | 映射最大值 |
其中cmap的漸變色參數(shù)取值見:
https://matplotlib.org/2.0.2/examples/color/colormaps_reference.html
代碼如下:
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
from matplotlib import pyplot as plt
import randomfig = plt.figure()
ax = Axes3D(fig)
x=np.arange(-30,30,1)
y=np.arange(-30,30,1)
x, y = np.meshgrid(x, y)
z=x**2+y**2ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')ax.plot_surface(x, y, z, cmap='rainbow')
plt.show()
散點(diǎn)圖繪制
散點(diǎn)圖繪制需要用到ax.scatter,具體代碼如下
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
from matplotlib import pyplot as plt
import randomfig = plt.figure()
ax = Axes3D(fig)
x=np.arange(-30,30,1)
y=np.arange(-30,30,1)
x, y = np.meshgrid(x, y)
z=x**2+y**2ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')ax.scatter(x, y, z,marker=".",color="blue")
plt.show()
更多隨機(jī)散點(diǎn)圖相關(guān)內(nèi)容可見:https://blog.csdn.net/qq_43605229/article/details/115439364
心形圖繪制
二維:
from matplotlib import pyplot as plt
import numpy as npsize = 2
x = np.linspace(-size, size, 400)
plt.plot(x, np.sqrt(1-(np.abs(x)-1)*(np.abs(x)-1)))
plt.plot(x, np.arccos(1-np.abs(x))-np.pi)
plt.show()
三維:
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as npdef heart_3d(x,y,z):return (x**2+(9/4)*y**2+z**2-1)**3-x**2*z**3-(9/80)*y**2*z**3def plot_implicit(fn, bbox=(-1.5, 1.5)):xmin, xmax, ymin, ymax, zmin, zmax = bbox*3fig = plt.figure()ax = fig.add_subplot(111, projection='3d')A = np.linspace(xmin, xmax, 100) # resolution of the contourB = np.linspace(xmin, xmax, 40) # number of slicesA1, A2 = np.meshgrid(A, A) # grid on which the contour is plottedfor z in B: # plot contours in the XY planeX, Y = A1, A2Z = fn(X, Y, z)cset = ax.contour(X, Y, Z+z, [z], zdir='z', colors=('r',))for y in B: # plot contours in the XZ planeX, Z = A1, A2Y = fn(X, y, Z)cset = ax.contour(X, Y+y, Z, [y], zdir='y', colors=('red',))for x in B: # plot contours in the YZ planeY, Z = A1, A2X = fn(x, Y, Z)cset = ax.contour(X+x, Y, Z, [x], zdir='x',colors=('red',))ax.set_zlim3d(zmin, zmax)ax.set_xlim3d(xmin, xmax)ax.set_ylim3d(ymin, ymax)plt.show()if __name__ == '__main__':plot_implicit(heart_3d)
總結(jié)
以上是生活随笔為你收集整理的【Python】函数图像绘制:二维图像、三维图像、散点图、心形图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【python】一个目录里面多个pyth
- 下一篇: 【python】图像映射:单应性变换与图