3D图形的绘制

介绍

2D图形需要两个轴:x轴和y轴
3D图形需要x,y,z三个轴
pltsns画不出来3D图形,没有这个功能
需要使用的是
mpl_toolkits.mplot3d.axes3d.Axes3D(fig)
有画布中的尺寸参数既可

3D散布图

import seaborn as sns
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D

#设置尺寸
plt.rcParams['fig']

#设置中文问题
plt.rcParams['font.family'] = ['SimHei']

iris = sns.load_dataset('iris')

fig = plt.figure

#示例3D模型
axes3d = Axes3D(fig)


这就是一个3D模型



# axes3d.scatter3D(iris.iloc[:, 0],iris.iloc[:, 2], iris.iloc[:,3])#这样出来不是彩色的

#3d图要求目标值必须是整数
target = iris.iloc[:,-1].astype('category').cat.codes

axes3d.scatter3D(iris.iloc[:,0],iris.iloc[:,2],iris.iloc[:,3],c=target,cmap='autumn',s=50)

#轴转动
axes3d.view_init(elev=0, azim=0)

3D曲面图

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D

#设置尺寸
plt.rcParams['fig']

#设置中文问题
plt.rcParams['font.family'] = ['SimHei']

X = np.linespace(-10,10,100)
y = np.linespace(-10,10,100)

#z和X、y有关系
#meshgrid是吧x和y合成一个点
xx,yy = np.meshgrid(x,y)

#zz = np.exp((xx+yy)**2)
zz = xx**3+yy**3

fig = plt.figure(figsize=(10,7))

#示例3D模型
axes3d = Axes3D(fig)

#超平面
pic = axes3d.plot_surface(xx,yy,zz,cmap='rainbow')

#颜色条,作用不大
plt.colorbar(pic,shrink=8)


右边那个就是颜色条