相当于D3.js的Python

2024-04-26 19:04:01 发布

您现在位置:Python中文网/ 问答频道 /正文

有谁能推荐一个可以实现图形可视化的Python库吗?

我特别想要像d3.js这样的东西,但是对于python来说,理想情况下它也是3D的。

我看过:

  • NetworkX-它只绘制Matplotlib图,而那些图看起来是二维的。我没有看到任何交互,就像d3.js提供的那种交互,比如拉节点。
  • graph-tool-它只做2D绘图,并且有非常慢的交互图。

Tags: networkx图形绘图节点matplotlib可视化js绘制
3条回答

您可以使用d3py一个python模块来生成嵌入d3.js脚本的xml页面。例如:

import d3py
import networkx as nx

import logging
logging.basicConfig(level=logging.DEBUG)

G = nx.Graph()
G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(3,2)
G.add_edge(3,4)
G.add_edge(4,2)

# use 'with' if you are writing a script and want to serve this up forever
with d3py.NetworkXFigure(G, width=500, height=500) as p:
    p += d3py.ForceLayout()
    p.show()

Plotly支持交互式二维和三维绘图。图形是用D3.js呈现的,可以用Python APImatplotlibggplot for PythonSeabornprettyplotlibpandas创建。您可以缩放、平移、打开或关闭跟踪,并在悬停时查看数据。绘图可以嵌入到HTML、应用程序、仪表板和IPython笔记本中。下面是一个显示交互性的temperature graph。有关更多示例,请参见IPython Notebookstutorials的库。

enter image description here



docs提供了支持的绘图类型和代码段的示例。



enter image description here

具体到您的问题,您还可以从NetworkX中make interactive plots

enter image description here

对于使用Python进行的三维打印,可以生成类似交互的三维散点图、直线图和曲面图。绘图是用WebGL呈现的。例如,请参见英国掉期利率的a 3D graph



enter image description here

披露:我是密谋小组的成员。

你看过文森特吗?文森特获取Python数据对象并将其转换为Vega可视化语法。Vega是一个建立在D3之上的高级可视化工具。与D3py相比,文森特回购协议最近更新了。尽管这些例子都是静态的D3。

更多信息:


这些图可以在Ipython中查看,只需添加以下代码

vincent.core.initialize_notebook()

或者输出到JSON,您可以在Vega在线编辑器(http://trifacta.github.io/vega/editor/)中查看JSON输出图,或者在Python服务器上本地查看它们。查看的更多信息可以在上面的pypi链接中找到。

不知道什么时候,但熊猫包应该在某个点上有D3集成。http://pandas.pydata.org/developers.html

Bokeh是一个支持交互式可视化的Python可视化库。它的主要输出后端是HTML5 Canvas,使用客户机/服务器模型。

示例:http://continuumio.github.io/bokehjs/

相关问题 更多 >