在Python中绘制网页图形的最佳方法
有没有一个Python的库可以生成基于网页的互动柱状图?
我有以下要求:
我不能使用plotly和matplotlib,因为它们依赖于numpy(有很多依赖)。我的环境不能安装这些包,不过我可以尝试使用这些包的源代码。
我需要一个跨平台的包。
1 个回答
1
如果你想不依赖任何额外的包,那就得用d3.js。你可以用Python生成数据,然后用d3.js来绘图和实现交互功能。不过,这种方法不太适合大型项目,因为它的可重用性不高。
如果你想要一个完整的解决方案(可以自动生成图表,并且可以在网络服务器上托管),可以看看docs.bokeh.org。这个工具依赖于:
Jinja2
numpy
packaging
pillow
python-dateutil
PyYAML
six
tornado
使用contiuum.io的Anaconda/MiniConda Python发行版,可以自动安装这些依赖。
通过使用conda这个包管理工具,你不需要担心安装二进制包的问题,因为Anaconda的Python发行版已经提供了你所需的一切。它有一个叫conda
的包管理器,可以安装与平台无关的Binaries
,并且会处理所有的依赖关系。这意味着你根本不需要额外的包管理器或编译器(比如GCC)来从头开始构建二进制文件。
我在没有任何包的基础Linux系统上测试过conda,它运行得非常好。你可以访问http://conda.pydata.org/miniconda.html来了解如何操作:
下载miniconda:
wget http://repo.continuum.io/miniconda/Miniconda-3.5.5-Linux-x86_64.sh
安装它(不需要管理员权限):
bash Miniconda-3.5.5-Linux-x86_64.sh
然后执行:
conda create -n plotting_env python
conda update conda
conda install bokeh
Conda是一个完整的(依赖关系解决)跨平台的包管理器,已经支持类似Virtualenv的功能。它会安装所有需要的库的二进制文件(包括C库),而不需要操作系统提供的包管理器。然后就可以开始编写代码了!