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斗牛游戏的概率
Feb 12 Python
运动检测ViBe算法python实现代码
Jan 09 Python
用python实现对比两张图片的不同
Feb 05 Python
python梯度下降法的简单示例
Aug 31 Python
Python并行分布式框架Celery详解
Oct 15 Python
将python图片转为二进制文本的实例
Jan 24 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
Jul 05 Python
Pytest参数化parametrize使用代码实例
Feb 22 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
Apr 11 Python
Python新手如何理解循环加载模块
May 29 Python
OpenCV+python实现实时目标检测功能
Jun 24 Python
matplotlib更改窗口图标的方法示例
Feb 03 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
php下使用iconv需要注意的问题
2010/11/20 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
php时间戳转换代码详解
2019/08/04 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
改变隐藏的input中value的值代码
2013/12/30 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
2017/03/07 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
python发送邮件实例分享
2017/07/28 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
Python模块future用法原理详解
2020/01/20 Python
Python 高效编程技巧分享
2020/09/10 Python
个人充满哲理的自我评价
2014/02/20 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
医德医风个人工作总结2014
2014/11/14 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书