python安装vpython_VPython:一个Python的3D图形动画库+被忽略的数据可视化功能
1 说明:
=====
1.1 VPython是一套简单易用的三维图形库,使用它可以快速创建三维场景和动画。
1.2 VPython 是python默认的3D模块,与PyOpenGL相比,容易上手,无需太多编程技巧。
1.3 主要讲解入门,对代码进行修改,代码为注释版,同时讲一讲ta被人忽略的强大的数据可视化作图功能。
1.4 支持中文,建议默认浏览器为谷歌浏览器。

2 准备:
=====
2.1 官网:
https://www.vpython.org/ #网速慢https://vpython.org/ #网速慢https://www.glowscript.org/docs/VPythonDocs/index.htmlhttps://pypi.org/project/vpython/https://github.com/vpython/glowscript #GlowScript 3.0 VPython,是最新版的VPython,源代码来自这里,进行修改2.2 环境:
华为笔记本电脑、深度deepin-linux操作系统、python3.8和微软vscode编辑器。
2.3 安装:
pip install vpython#本机安装,采用清华国内源,超速sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple vpython3 Helloworld:
==========
3.1 代码:
from vpython import *#t = text(text='Faces forward', pos=vec(-4,0,0),color=color.cyan, billboard=True, emissive=True)#屏幕默认大小和背景颜色#注意vec=vectortext(text='Hello World', pos=vec(-4,0,0),color=color.cyan, billboard=True, emissive=True)3.2 操作和效果图:

4 box和scene:
===========
4.1 代码:
from vpython import *#注意不管scene.caption的位置放在哪里,都是在scene==canvas==画布的下面显示文字scene.caption = """3D text can be "billboard" text -- always facing you.你好"""#屏幕=scene大小==canvas=画布==差不多scene.width = 500scene.height = 500#背景颜色,默认为黑色#scene.background = color.gray(0.9)scene.background = color.red#注意没有box(),下面不显示文字,也就是scene不显示在浏览器中#pos==position==位置,初始位置0,0,0==屏幕中心#size==边长==长=宽=高==1box(pos=vec(0,0,0), opacity=1, size=vec(1,1,1), texture=textures.flower)#scene.caption = """你好"""4.2 效果图:

5 Bounce:
=======
5.1 代码:
from vpython import *scene.caption = """1 滑动鼠标滑轮进行zoom放大缩小2 点击右键进行旋转"""side = 4.0thk = 0.3s2 = 2*side - thks3 = 2*side + thkwallR = box (pos=vector( side, 0, 0), size=vector(thk, s2, s3), color = color.red)wallL = box (pos=vector(-side, 0, 0), size=vector(thk, s2, s3), color = color.red)wallB = box (pos=vector(0, -side, 0), size=vector(s3, thk, s3), color = color.blue)wallT = box (pos=vector(0, side, 0), size=vector(s3, thk, s3), color = color.blue)wallBK = box(pos=vector(0, 0, -side), size=vector(s2, s2, thk), color = color.gray(0.7))ball = sphere (color = color.green, radius = 0.4, make_trail=True, retain=200)ball.mass = 1.0ball.p = vector (-0.15, -0.23, +0.27)side = side - thk*0.5 - ball.radiusdt = 0.3while True: rate(200) ball.pos = ball.pos + (ball.p/ball.mass)*dt if not (side > ball.pos.x > -side): ball.p.x = -ball.p.x if not (side > ball.pos.y > -side): ball.p.y = -ball.p.y if not (side > ball.pos.z > -side): ball.p.z = -ball.p.z5.2 效果图:

===讲解被忽略的数据可视化功能===
6 gdots:
======
6.1 代码:
#散点图==gdots==graph-dots==Scatterfrom vpython import *#oscillation = graph(title=s, x, y, fast=False, width=800)#图表标题,支持中文,x和y坐标轴名称,图表宽800graph(, x, y, fast=False, width=800) #等同上面data=[[1,5],[4,2],[6,1],[2,5],[3,4]]funct3 = gdots(color=color.red, size=6, label='dots')funct3.plot(data)6.2 图:其实内置plotly,简单且强大。

7 gvbars:
=======
7.1 代码:
'''#1组gvbars==graph-v-bars==垂直柱状图from vpython import *#图表标题,支持中文,x和y坐标轴名称,图表宽800graph(, x, y, fast=False, width=800) data=[[1,5],[2,2],[3,3],[4,4],[5,6]]funct3 = gvbars(delta=0.4, color=color.green, label='bars')funct3.plot(data)'''#2组gvbars==graph-v-bars==垂直柱状图#备注:gvbars==ghbars≠gbarsfrom vpython import *#图表标题,支持中文,x和y坐标轴名称,图表宽800graph(, x, y, fast=False, width=800) #数据1data1=[[1,5],[2,2],[3,3],[4,4],[5,6]]funct1 = gvbars(delta=0.4, color=color.green, label='bars-1')funct1.plot(data1)#数据2data2=[[1,3],[2,5],[3,4],[4,2],[5,2]]funct2 = gvbars(delta=0.4, color=color.red, label='bars-2')funct2.plot(data2)7.2 图:

8 gcurve:
=======
8.1 代码:
#2组gcurve==graph-curve==折线图#也是Scatter兼顾from vpython import *#图表标题,支持中文,x和y坐标轴名称,图表宽800graph(, x, y, fast=False, width=800) #数据1data1=[[1,5],[2,2],[3,3],[4,4],[5,6]]funct1 = gcurve(color=color.blue, width=4, markers=True, marker_color=color.black, label='curve-1')funct1.plot(data1)#数据2data2=[[1,3],[2,5],[3,4],[4,2],[5,2]]funct2 = gcurve(color=color.green, width=4, markers=True, marker_color=color.red, label='curve-2')funct2.plot(data2)8.2 效果图:

===可用图形简单,但很方便===
大神,可以适当修改,位置在:
比如本机root下的位置
/usr/local/python3.8/lib/python3.8/site-packages/vpython/vpython.py
第2071行开始,适当增加即可。
放一个官网源代码的图,代码就省略了。




===好强大呀,而且很简单,国内基本没有人介绍===
===自己整理并分享出来===
喜欢的点赞、评论、关注、转发和收藏。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
