日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【Python】函数图像绘制:二维图像、三维图像、散点图、心形图

發(fā)布時(shí)間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。