python matlibplot绘制3D图形


Posted in Python onJuly 02, 2018

本文实例为大家分享了python matlibplot绘制3D图形的具体代码,供大家参考,具体内容如下

1、散点图使用scatter

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


# 生成3D示例数据

mu_vec1 = np.array([0,0,0]) # 均值向量
cov_mat1 = np.array([[1,0,0],[0,1,0],[0,0,1]]) # 协方差矩阵

class1_sample = np.random.multivariate_normal(mu_vec1, cov_mat1, 20)
class2_sample = np.random.multivariate_normal(mu_vec1 + 1, cov_mat1, 20)
class3_sample = np.random.multivariate_normal(mu_vec1 + 2, cov_mat1, 20)


# class1_sample.shape -> (20, 3), 20 rows, 3 columns


fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(111, projection='3d')

ax.scatter(class1_sample[:,0], class1_sample[:,1], class1_sample[:,2],
   marker='x', color='blue', s=40, label='class 1')
ax.scatter(class2_sample[:,0], class2_sample[:,1], class2_sample[:,2],
   marker='o', color='green', s=40, label='class 2')
ax.scatter(class3_sample[:,0], class3_sample[:,1], class3_sample[:,2],
   marker='^', color='red', s=40, label='class 3')

ax.set_xlabel('variable X')
ax.set_ylabel('variable Y')
ax.set_zlabel('variable Z')

plt.title('3D Scatter Plot')

plt.show()

python matlibplot绘制3D图形

2、直线使用plot3D

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from itertools import product, combinations
fig = plt.figure(figsize=(7,7))
ax = fig.gca(projection='3d')
ax.set_aspect("equal")


# 画点

 

# 立方体里的点

X_inside = np.array([[0,0,0],[0.2,0.2,0.2],[0.1, -0.1, -0.3]])

X_outside = np.array([[-1.2,0.3,-0.3],[0.8,-0.82,-0.9],[1, 0.6, -0.7],
      [0.8,0.7,0.2],[0.7,-0.8,-0.45],[-0.3, 0.6, 0.9],
      [0.7,-0.6,-0.8]])

for row in X_inside:
 ax.scatter(row[0], row[1], row[2], color="r", s=50, marker='^')

for row in X_outside:
 ax.scatter(row[0], row[1], row[2], color="k", s=50)


# 画立方体

h = [-0.5, 0.5]
for s, e in combinations(np.array(list(product(h,h,h))), 2):
 if np.sum(np.abs(s-e)) == h[1]-h[0]:
  ax.plot3D(*zip(s,e), color="g")

ax.set_xlim(-1.5, 1.5)
ax.set_ylim(-1.5, 1.5)
ax.set_zlim(-1.5, 1.5)

plt.show()

python matlibplot绘制3D图形

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
零基础写python爬虫之HTTP异常处理
Nov 05 Python
Python3读取zip文件信息的方法
May 22 Python
python多进程共享变量
Apr 06 Python
python脚本实现xls(xlsx)转成csv
Apr 10 Python
理解python中生成器用法
Dec 20 Python
Python实现修改IE注册表功能示例
May 10 Python
python判断一个对象是否可迭代的例子
Jul 22 Python
pymysql模块的使用(增删改查)详解
Sep 09 Python
Python tkinter和exe打包的方法
Feb 05 Python
Pytest参数化parametrize使用代码实例
Feb 22 Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
Jul 03 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 Python
对numpy Array [: ,] 的取值方法详解
Jul 02 #Python
Python使用itertools模块实现排列组合功能示例
Jul 02 #Python
python绘制立方体的方法
Jul 02 #Python
python numpy 一维数组转变为多维数组的实例
Jul 02 #Python
Python实现通过继承覆盖方法示例
Jul 02 #Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 #Python
Python 中的range(),以及列表切片方法
Jul 02 #Python
You might like
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
linux下 C语言对 php 扩展
2008/12/14 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHPExcel导出2003和2007的excel文档功能示例
2017/01/04 PHP
jQuery bind事件使用详解
2011/05/05 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
Python修改Excel数据的实例代码
2013/11/01 Python
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
python3射线法判断点是否在多边形内
2019/06/28 Python
Python实现微信小程序支付功能
2019/07/25 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
如何基于python实现不邻接植花
2020/05/01 Python
python等待10秒执行下一命令的方法
2020/07/19 Python
Python 远程开关机的方法
2020/11/18 Python
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
Java面试笔试题大全
2016/11/23 面试题
创业计划书——互联网商机
2014/01/12 职场文书
中年人生感言
2014/02/04 职场文书
简易版租房协议书范本
2014/10/13 职场文书
2014办公室年度工作总结
2014/12/09 职场文书