Eiy*_*uyf 99 python graph d3.js graph-tool
任何人都可以推荐可以进行交互式图形可视化的Python库吗?
我特别想要像d3.js这样的东西,但是python
理想情况下它也会是3D.
我看过:
Matplotlib
绘图,而那些似乎是2D.我没有看到任何类型的交互性,例如d3.js
提供的交互性,例如拉动节点.小智 68
您可以使用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()
Run Code Online (Sandbox Code Playgroud)
Mat*_*hez 38
Plotly支持交互式2D和3D图形.图表使用D3.js呈现,可以使用Python API,matplotlib,Python,Seaborn,prettyplotlib和pandas的ggplot创建.您可以打开和关闭缩放,平移,切换轨迹,并查看悬停上的数据.Plots可以嵌入HTML,应用程序,仪表板和IPython笔记本中.下面是显示交互性的温度图.有关更多示例,请参阅IPython笔记本 教程库.
该文档提供了支持的图形类型和代码段的例子.
特别针对您的问题,您还可以从NetworkX 制作交互式图表.
对于使用Python进行3D绘图,您可以制作类似交互式的3D散点图,线图和曲面图.使用WebGL渲染绘图.例如,请参阅UK Swap费率的3D图表.
披露:我在Plotly团队.
sk8*_*123 20
你看过文森特吗?Vincent接受Python数据对象并将其转换为Vega可视化语法.Vega是基于D3构建的更高级别的可视化工具.与D3py相比,vincent仓库最近更新了.虽然这些例子都是静态D3.
更多信息:
可以在Ipython中查看图表,只需添加此代码即可
vincent.core.initialize_notebook()
Run Code Online (Sandbox Code Playgroud)
或输出到JSON,您可以在Vega在线编辑器(http://trifacta.github.io/vega/editor/)中查看JSON输出图,或在本地Python服务器上查看它们.有关观看的更多信息可以在上面的pypi链接中找到.
不知道什么时候,但是Pandas包在某些时候应该有D3集成. http://pandas.pydata.org/developers.html
Bokeh是一个支持交互式可视化的Python可视化库.它的主要输出后端是HTML5 Canvas并使用客户端/服务器模型.
示例:http://continuumio.github.io/bokehjs/
psy*_*dia 17
我使用的一个方法(在此描述:GEXF中的联合主管网络数据文件和来自OpenCorporates Data通过Scraperwiki和networkx的JSON)运行如下:
该networkx JSON出口国采取以下形式:
from networkx.readwrite import json_graph
import json
print json.dumps(json_graph.node_link_data(G))
Run Code Online (Sandbox Code Playgroud)
或者,您可以将网络导出为GEXF XML文件,然后将此表示导入sigma.js Javascript可视化库.
from xml.etree.cElementTree import tostring
writer=gf.GEXFWriter(encoding='utf-8',prettyprint=True,version='1.1draft')
writer.add_graph(G)
print tostring(writer.xml)
Run Code Online (Sandbox Code Playgroud)
该库d3graph
将从 python 中构建一个力导向的 d3-graph。您可以根据边权重“破坏”网络,并将鼠标悬停在节点上以获取更多信息。双击节点将聚焦于该节点及其连接的边。
pip install d3graph
Run Code Online (Sandbox Code Playgroud)
例子:
source = ['node A','node F','node B','node B','node B','node A','node C','node Z']
target = ['node F','node B','node J','node F','node F','node M','node M','node A']
weight = [5.56, 0.5, 0.64, 0.23, 0.9,3.28,0.5,0.45]
# Import library
from d3graph import d3graph, vec2adjmat
# Convert to adjacency matrix
adjmat = vec2adjmat(source, target, weight=weight)
print(adjmat)
# target node A node B node F node J node M node C node Z
# source
# node A 0.00 0.0 5.56 0.00 3.28 0.0 0.0
# node B 0.00 0.0 1.13 0.64 0.00 0.0 0.0
# node F 0.00 0.5 0.00 0.00 0.00 0.0 0.0
# node J 0.00 0.0 0.00 0.00 0.00 0.0 0.0
# node M 0.00 0.0 0.00 0.00 0.00 0.0 0.0
# node C 0.00 0.0 0.00 0.00 0.50 0.0 0.0
# node Z 0.45 0.0 0.00 0.00 0.00 0.0 0.0
# Example A: simple interactive network
out = d3graph(adjmat)
# Example B: Color nodes
out = d3graph(adjmat, node_color=adjmat.columns.values)
# Example C: include node size
node_size = [10,20,10,10,15,10,5]
out = d3graph(adjmat, node_color=adjmat.columns.values, node_size=node_size)
# Example D: include node-edge-size
out = d3graph(adjmat, node_color=adjmat.columns.values, node_size=node_size, node_size_edge=node_size[::-1], cmap='Set2')
# Example E: include node-edge color
out = d3graph(adjmat, node_color=adjmat.columns.values, node_size=node_size, node_size_edge=node_size[::-1], node_color_edge='#00FFFF')
# Example F: Change colormap
out = d3graph(adjmat, node_color=adjmat.columns.values, node_size=node_size, node_size_edge=node_size[::-1], node_color_edge='#00FFFF', cmap='Set2')
# Example H: Include directed links. Arrows are set from source -> target
out = d3graph(adjmat, node_color=adjmat.columns.values, node_size=node_size, node_size_edge=node_size[::-1], node_color_edge='#00FFFF', cmap='Set2', directed=True)
Run Code Online (Sandbox Code Playgroud)
泰坦尼克号案例的交互式示例可以在这里找到: https: //erdogant.github.io/docs/d3graph/titanic_example/index.html https://erdogant.github.io/hnet/pages/html/Use%20Cases .html