参考资料:python统计分析【托马斯】
1、二元变量散点图
类似与excel中的气泡图,但更具有灵活性。代码和图片参考如下:
# 建立数据源,生成50行4列的随机数,列名分别为a、b、c、d
df=pd.DataFrame(np.random.rand(50,4),columns=['a','b','c','d'])
# kind='scatter'表示散点图
# x和y表示坐标
# s表示散点的大小
df.plot(kind='scatter',x='a',y='b',s=df['c']*300)
2、3D图
在matplotlib中绘制3D图有一点麻烦,因为需要导入不同的模块,并且3D图的坐标轴需要显式声明。然而,一旦正确定义坐标轴,剩下的部分就很直观了。如下:
# 导作图库
from matplotlib import cm
from mpl_toolkits.mplot3d.axes3d import get_test_data
# 设置plt的长宽比
fig=plt.figure(figsize=plt.figaspect(0.5))
# ---- 绘制第一个子图形
ax=fig.add_subplot(1,2,1,projection='3d')
# 生成网格
X=np.arange(-5,5,0.1)
Y=np.arange(-5,5,0.1)
X,Y=np.meshgrid(X,Y)
# 生成曲面数据
R=np.sqrt(X**2+Y**2)
Z=np.sin(R)
# 绘制曲面
surf=ax.plot_surface(X,Y,Z,rstride=1,cstride=1,
cmap=cm.GnBu,linewidth=0,
antialiased=False)
ax.set_zlim3d(-1.01,1.01)
fig.colorbar(surf,shrink=0.5,aspect=10)
# ----第二个子图形
ax=fig.add_subplot(1,2,2,projection='3d')
X,Y,Z=get_test_data(0.05)
ax.plot_wireframe(X,Y,Z,rstride=10,cstride=10)
# outfile='3dGraph.png'
# plt.savefig(outfile,dpi=200)
plt.show()