基于HTML5 Canvas的matplotlib后端。
项目描述
此模块提供了一种通过HTML5技术(包括WebSocket和Canvas元素)实现的交互式matplotlib后端。
我们的主要目标是实现一个在不同平台上保持一致性的后端,具有很少的安装依赖,易于动画和快速,并且与当前matplotlib的使用场景兼容。
安装说明可以在以下位置或项目的 Wiki 页面上找到。简短的回答
easy_install mplh5canvas
功能
纯Python
使用mod_pywebsocket通过多种WebSocket标准提供多浏览器支持
需要具有Canvas和WebSocket支持的最新网络浏览器(自2013年初以来,所有主要浏览器的最新版本都应该能够正常工作 - 更多详情请参阅 Wiki 页面)
设计时考虑到动画和交互性(可调整大小、可缩放、可点击区域等)
简单的图表(例如,2048点的线图)可以以大约每秒60帧的速度动画化
允许正确访问图表
允许同时访问多个图表
缩略图窗口允许快速在单页上的图表之间切换
屏幕截图
要求
我们努力使此模块尽可能独立于其他依赖,以打开尽可能广泛的安装基础。然而,我们确实依赖于处理浏览器通信的优秀pywebsocket代码。这使我们能够更好地跟踪WebSocket标准,因为其持续发展。
安装前的当前基本系统要求如下
Python 2.5, 2.6或2.7(2.4也应该可以,但尚未测试)
matplotlib 0.99.1.1或更高版本(如果您选择使用easy_install mplh5canvas的方式,它将被自动安装)
pywebsocket 0.6或更高版本(如果您选择使用easy_install mplh5canvas的方式,它将被自动安装)
如果您想使用下述说明中建议的easy_install,则应安装setuptools。或者,您可以通过安装pip Python包来使用pip代替easy_install。
您用来显示图表的网页浏览器必须支持Canvas和WebSocket(有关当前WebSocket支持摘要,请参阅https://caniuse.cn/#feat=websockets)。截至2013年7月,主要浏览器的情况如下
Chrome 9及以后版本无需额外设置即可正常工作,是目标浏览器(包括桌面和移动版本)
Safari 5及以后版本无需额外设置即可正常工作(包括Mac OS X和iOS版本)
Firefox 4在解除WebSocket支持限制后可以正常工作
浏览到about:config首选项页面并承诺小心操作
在过滤器中输入websocket以找到正确的选项
双击network.websocket.override-security-block将其设置为true
Firefox 5至10由于存在自定义的MozWebSocket类而不受支持
Firefox 11及以后版本无需额外设置即可正常工作
Opera 11至12.02在解除WebSocket支持限制后可以正常工作
浏览到opera:config页面上的首选项编辑器
在“快速查找”搜索字段中输入websocket以聚焦正确的选项(在用户首选项下“启用WebSocket”)
勾选复选框并单击保存按钮
Opera 12.10及以后版本无需额外设置即可正常工作
Internet Explorer 10及以后版本应该可以正常工作,但尚未测试
Opera Mini和Android Browser尚未支持WebSocket,因此不受支持
netifaces
在多种操作系统之间猜测用户主网络接口的IP地址出奇地困难。代码默认使用socket.gethostbyname,它做得相当不错,但如果安装了VMware则完全不可用。
如果可用,它将使用netifaces模块,通常做得更好。建议您通过运行以下命令来安装此模块:
easy_install netifaces
mod_pywebsocket
如果按照以下说明进行操作,它将随mplh5canvas一起安装。然而,您可以自己安装它
easy_install mod_pywebsocket
mod_pywebsocket PyPI页面可能已经过时,因为我们自己维护它。mod_pywebsocket的主仓库位于pywebsocket。
安装
由于此软件包可在PyPI上找到,因此安装它的最简单方法是执行以下操作
easy_install mplh5canvas
或者,您可以自己安装mod_pywebsocket,从Google Code页面下载最新的mplh5canvas tarball(或检出源代码),然后执行以下操作:
python setup.py install
假设您有权在系统上安装Python包(如果没有,可以使用virtualenv)。
测试
我们提供了一些示例脚本用于初始测试。令人惊讶的是,这些脚本位于源代码的examples目录中。
脚本名称具有自解释性。脚本应打印出管理服务器的URL,如果安装了可用的网页浏览器,则应在浏览器中打开新标签页。如果没有,则只需将管理URL复制并粘贴到浏览器窗口中。
符合性测试
为了达到合理的符合性水平,我们提供了一个粗略的测试套件,该套件将在matplotlib示例目录中运行,并生成用于并排比较的网页。
cd tests python test.py -d <matplotlib source tree>/lib/mpl_examples/pylab_examples
这将在tests/output目录中生成输出文件。在网页浏览器中查看test.html文件将显示mplh5canvas实现以及目标目录中每个文件的PNG和SVG。
请注意,这些测试结果可能相当庞大,并可能导致浏览器不稳定。您可以通过使用通配符参数运行一组有限的测试(参见test.py --help)。
还有选项将页面上的每个画布渲染为PNG,以便更容易地进行并排比较。为此,运行
python rec.py
完成测试运行后。在test.html页面的底部单击“连接”按钮。然后单击“将图像上传到服务器”按钮。rec.py实例应指示将各种文件写入磁盘。然后打开test_rendered.html页面,其中将有一个并排的PNG列。
项目详情
mplh5canvas-0.7.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eac19bc812b391697f3807de7dc4f5d4b2db333789b728d891f8a2129ff12e35 |
|
MD5 | 771b283a839aa30ff4a58ebef413de8c |
|
BLAKE2b-256 | 1210aefb00d1a8501ff56e2ec9d42926250569aafc7cf4f1e593034981f82134 |