Python使用matplotlib绘制三维图形示例

yipeiwu_com7年前Python基础

本文实例讲述了Python使用matplotlib绘制三维图形。分享给大家供大家参考,具体如下:

用二维泡泡图表示三维数据

泡泡的坐标2维,泡泡的大小三维,使用到的函数

plt.scatter(P[:,0], P[:,1], s=S, lw = 1.5,
         edgecolors = C, facecolors='None')

其中P[:,0], P[:,1]为泡泡的坐标数据,s为泡泡的大小,lw为泡泡的边线宽度,edgecolors为边线颜色,facecolors为填充颜色

代码及注释

# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(9,6))
# 泡泡的数量
n = 50
size_min = 50
size_max = 50*50
# Ring position,rand可以产生2维数组
P = np.random.rand(n,2)
# Ring colors R,G,B,A
C = np.ones((n,4)) * (0,0,0,1)
# Alpha color channel goes from 0 (transparent) to 1 (opaque)
C[:,3] = np.linspace(0,1,n)
# Ring sizes
S = np.linspace(size_min, size_max, n)
# Scatter plot
plt.scatter(P[:,0], P[:,1], s=S, lw = 1.5,
         edgecolors = C, facecolors='None')
#range只能排列出整数,在排列小数时可以用到np.arange
plt.xlim(0,1), plt.xticks(np.arange(0,1.1,0.1))
plt.ylim(0,1), plt.yticks(np.arange(0,1.1,0.1))
plt.show()

运行结果:

三维螺旋线图

需要导入三维工具mplot3d

from mpl_toolkits.mplot3d import Axes3D

导入了这个工具后才能在add_subplot时添加参数

projection='3d'

完整代码及注释

# -*- coding:utf-8 -*-
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei'] #防止中文乱码
fig = plt.figure(figsize=(9,6))
#添加参数projection
ax = fig.add_subplot(111,projection='3d')
z = np.linspace(0, 6, 1000)
r = 1
x = r * np.sin(np.pi*2*z)
y = r * np.cos(np.pi*2*z)
#c是颜色
ax.plot(x, y, z, label=u'螺旋线', c='r')
ax.legend()
#存成图片,支持png格式
# dpi每英寸长度的点数,画出的三维图是矢量图,可以设置保存的dpi
plt.savefig('3d_fig.png',dpi=200)
plt.show()

注:这里针对中文显示问题做了处理,具体可以参考《Python使用matplotlib绘图无法显示中文问题的解决方法》。

参考网站:

https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html
https://matplotlib.org/gallery.html

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

应用OpenCV和Python进行SIFT算法的实现详解

应用OpenCV和Python进行SIFT算法的实现详解

应用OpenCV和Python进行SIFT算法的实现 如下图为进行测试的gakki101和gakki102,分别验证基于BFmatcher、FlannBasedMatcher等的SIFT...

Python实现脚本锁功能(同时只能执行一个脚本)

Python实现脚本锁功能(同时只能执行一个脚本)

1. 文件锁 脚本启动前检查特定文件是否存在,不存在就启动并新建文件,脚本结束后删掉特定文件。 通过文件的判断来确定脚本是否正在执行。 方法实现也比较简单,这里以python脚本为例...

使用python和pygame绘制繁花曲线的方法

使用python和pygame绘制繁花曲线的方法

前段时间看了一期《最强大脑》,里面各种繁花曲线组合成了非常美丽的图形,一时心血来潮,想尝试自己用代码绘制繁花曲线,想怎么组合就怎么组合。 真实的繁花曲线使用一种称为繁花曲线规的小玩意绘制...

Python中函数的参数传递与可变长参数介绍

Python中函数的参数传递与可变长参数介绍

1.Python中也有像C++一样的默认缺省函数 复制代码 代码如下: def foo(text,num=0):     print text,num fo...

浅析Python中的序列化存储的方法

在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: d = dict(name='Bob', age=20, score=88) 可以随时修改变量,比如把na...