跳转到主要内容

基于HTML5 Canvas的matplotlib后端。

项目描述

此模块提供了一种通过HTML5技术(包括WebSocket和Canvas元素)实现的交互式matplotlib后端。

我们的主要目标是实现一个在不同平台上保持一致性的后端,具有很少的安装依赖,易于动画和快速,并且与当前matplotlib的使用场景兼容。

安装说明可以在以下位置或项目的 Wiki 页面上找到。简短的回答

easy_install mplh5canvas

功能

  • 纯Python

  • 使用mod_pywebsocket通过多种WebSocket标准提供多浏览器支持

  • 需要具有Canvas和WebSocket支持的最新网络浏览器(自2013年初以来,所有主要浏览器的最新版本都应该能够正常工作 - 更多详情请参阅 Wiki 页面)

  • 设计时考虑到动画和交互性(可调整大小、可缩放、可点击区域等)

  • 简单的图表(例如,2048点的线图)可以以大约每秒60帧的速度动画化

  • 允许正确访问图表

  • 允许同时访问多个图表

  • 缩略图窗口允许快速在单页上的图表之间切换

屏幕截图

http://mplh5canvas.googlecode.com/files/screenshot.png

要求

我们努力使此模块尽可能独立于其他依赖,以打开尽可能广泛的安装基础。然而,我们确实依赖于处理浏览器通信的优秀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 MiniAndroid 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 (63.8 kB 查看哈希)

上传时间 源代码

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面