10分钟掌握Graphistry可视化#
本指南涵盖了核心的可视化主题,例如上传和查看图表之间的区别,客户端/服务器架构的工作原理,以及如何使用PyGraphistry的流畅API通过结合编码、布局和设置等概念来创建强大的可视化。最后,我们概述了如何将可视化嵌入到不同的工作流程中。
关键概念#
客户端/服务器架构:上传 vs. 服务 vs. 查看#
PyGraphistry 使用客户端-服务器模型。通过分离上传器、服务器和查看器,我们可以实现更好的性能、新功能以及多种使用模式。
上传客户端: 在您的本地环境中,您可以塑造数据并调用Graphistry API将其上传到服务器(自托管或Graphistry Hub)。
可视化服务器: 该服务器使用GPU加速处理数据以处理大型图形。
可视化客户端: 图表随后在您的浏览器中展示,通过适当使用本地和远程GPU资源,缩放和过滤等交互操作得以流畅处理。
这种分割架构允许对即使最大的数据集进行可扩展的高性能可视化。
流式API风格#
PyGraphistry 使用了一种流式风格的 API,这意味着方法可以链式调用。这使得代码简洁且易于阅读,无需进行大量的设置:
g1 = graphistry.edges(df, 'src', 'dst')
g2 = g1.nodes(df2, 'n')
g3 = g2.encode_point_size('score')
g3.plot()
# As shorter fluent lines
g = graphistry.edges(df, 'src', 'dst').nodes(df2, 'n')
g.encode_point_size('score').plot()
这种方法允许您根据需要分层操作,保持代码轻量且直观。
塑造您的数据#
PyGraphistry 支持灵活地塑造您的图形数据:
`.edges()` & `.nodes()`: 定义实体之间的边和可选的节点属性
# df[['src', 'dst', ...]] graphistry.edges(df, 'src', 'dst').plot() # ... + df2[['n', ...]] graphistry.edges(df, 'src', 'dst').nodes(df2, 'n').plot()
超图: 使用多列作为节点以实现更复杂的可视化
# df[['actor', 'event', 'location', ...]] hg = graphistry.hypergraph(df, ['actor', 'event', 'location']) hg['graph'].plot()
UMAP: 基于行相似性的降维和嵌入可视化工具
# df[['score', 'time', ...]] graphistry.nodes(df).umap(X=['score', 'time']).plot()
这些方法确保您可以快速加载和整理数据,并进入可视化阶段。
布局#
PyGraphistry的布局目录提供了许多选项,涵盖:
实时布局: Graphistry 在交互时执行 GPU 加速的力导向布局。 您可以调整设置,例如重力、边权重和初始聚类时间:
g.settings(url_params={'play': 7000, 'info': True}).plot()
PyGraphistry 布局: PyGraphistry 提供了其他地方没有的特殊布局,这些布局与渲染引擎的特殊功能配合使用:
g.time_ring_layout('time_col').plot()
插件布局: 集成使用外部库以实现特定布局:
外部布局:传入x,y列,例如来自您自己的编辑、外部数据或外部ML/AI包:
# nodes_df[['x', 'y', 'n', ...]] g = graphistry.edges(e_df, 's', 'd').nodes(nodes_df, 'n') g2 = g.settings(url_params={'play': 0}) # skip initial loadtime layout g2.plot()
节点和边编码#
您可以使用颜色、大小、图标等视觉方式编码您的图形属性:
直接编码:直接在节点或边上设置颜色等属性。
g.encode_point_color('type', categorical_mapping={'A': 'red', 'B': 'blue'}).plot()
分类与连续映射:处理离散和连续数据:
g.encode_point_color('score', ['blue', 'yellow', 'red'], as_continuous=True).plot()
编码列表:除了颜色之外,您还可以使用以下方法调整边的厚度、节点图标,并添加徽章:
点数:
边:
绑定: 更简单的数据驱动设置是通过
graphistry.PlotterBase.PlotterBase.bind()完成的:g.bind(point_title='my_node_title_col')
其中:
bind(source=None, destination=None, node=None, edge=None, edge_title=None, edge_label=None, edge_color=None, edge_weight=None, edge_size=None, edge_opacity=None, edge_icon=None, edge_source_color=None, edge_destination_color=None, point_title=None, point_label=None, point_color=None, point_weight=None, point_size=None, point_opacity=None, point_icon=None, point_x=None, point_y=None )
全局URL设置#
Graphistry 可视化通过 URL 参数高度可配置。您可以控制外观、交互和数据过滤器:
g.settings(url_params={'play': 7000, 'info': True}).plot()
有关参数的完整列表,请参阅官方REST URL参数页面。
绘图:内联和URL渲染#
一旦你准备好进行可视化,使用 .plot() 来渲染:
内联绘图:直接在您的笔记本或Python环境中嵌入交互式可视化:
g.plot()
URL渲染:获取一个可分享和可嵌入的URL以在浏览器中查看:
url = g.plot(render=False) print(f"View your graph at: {url}")
您可以使用URL参数和JavaScript进一步控制嵌入的可视化
下一步#
10 Minutes to GFQL: 在可视化之前使用GFQL查询和操作您的图数据。
布局指南: 探索不同的可视化布局。
Plugins: 发现更多连接到您的数据并与您喜爱的工具一起使用的方式。
Layout catalog: 深入了解PyGraphistry中可用的布局选项。
外部资源#
要深入了解图分析和可视化,请查看以下资源:
祝您绘图愉快!