3D图形的绘制
介绍
2D图形
需要两个轴:x轴和y轴
3D图形
需要x,y,z三个轴
plt
和sns
画不出来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)
右边那个就是颜色条