本文实例讲述了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程序设计有所帮助。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。