【问题标题】:best way to plot web based graph in Python [closed]在 Python 中绘制基于 Web 的图形的最佳方法 [关闭]
【发布时间】:2014-09-10 22:09:24
【问题描述】:

是否有 python 包来生成基于 Web 的交互式条形图?

我有以下要求:

  • 我不能使用 plotly,matplotlib,因为它们依赖于 numpy(很多依赖项)。我的环境无法安装任何此类包,但是我可以尝试使用包的源代码。

  • 我需要跨平台的包

【问题讨论】:

  • 是否可以在您的环境中添加 numpy?
  • “基于 Web 的交互式条形图” - 这是什么意思?您是否想要一些图表,人们可以单击由您在 Python 中生成的数据提供的“向下钻取”? Python 不在浏览器上运行,因此 Python 无法提供交互性。最多,它可以在某个时间点生成静态数据图——要动画或与它们交互,你需要一个客户端库。所以,我再问一次——你到底需要什么?
  • At most, it can generate static graphs of data at a point in time - to animate or interact with them, you need a client side library. 确实,python 不是客户端,但是有一些库可以为您做客户端的事情:bokeh.pydata.org 是最完整的 html5,d3.js 基础绘图解决方案.

标签: python numpy plotly


【解决方案1】:

如果你想不使用任何包,你需要依赖 d3.js。 从 python 生成数据,在 d3.js 中渲染以进行绘图和交互。 不能重复使用,如果项目很大,不适合。 http://d3js.org

如果您正在寻找完整的堆栈(它将为您生成绘图并且您可以在 Web 服务器上托管),请查看 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 这样做:

下载迷你康达:

wget http://repo.continuum.io/miniconda/Miniconda-3.5.5-Linux-x86_64.sh

安装它(不需要root):

bash Miniconda-3.5.5-Linux-x86_64.sh

然后做:

conda create -n plotting_env python
conda update conda
conda install bokeh 

Conda 是完整的(依赖解析),跨平台,包管理器,已经有 Virtualenv 风格的支持。 它将安装所有需要的库(包括 C 库)的二进制文件,而不需要操作系统提供的包管理器。 然后编码!

【讨论】:

  • 谢谢,但没有我可以使用的软件包吗?大多数包似乎都依赖于 numpy
  • Numpy 是一个非常重要的软件,让 python 以最快和内存高效的方式生成/维护/解析数组(非常接近 C 的性能)。如果可能的话,你应该使用 python 的 continuum.io 发行版:Miniconda,并安装 numpy(它完全是跨平台的)。
  • 谢谢,我有使用 virtualenv 的经验; conda 看起来和它很相似。无论如何,这是我的担忧:我编写的 python 包将从 NXOS 运行(具有 Linux 内核的 Cisco Nexus OS 无法安装包)。有没有办法使用 conda 将 numpy/matplotlib 打包成二进制文件并使用它?这有意义吗
  • 这就是我所说的。 Continuum Anaconda 为您提供一切。它不仅仅是一个虚拟环境,它是全栈 python,已经包含了 C Base 库。 ,我会用更多的细节更新我的答案。
  • 嗨,是的...我肯定会使用 Conda。感谢那!!但是,我打算使用 nvd3 python-nvd3.readthedocs.org/en/latest/introduction.html 来提供更多交互性(图形的交互坐标)而不是散景,我打算使用 Conda 在 Linux 服务器上将我的包构建成二进制文件,然后直接使用我的 Nexus 设备上的二进制库(我无法安装 Conda/其他软件包)
猜你喜欢
  • 1970-01-01
  • 2019-09-13
  • 2013-01-29
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2021-02-01
  • 1970-01-01
相关资源
最近更新 更多