2catycm commited on
Commit
6fa7bc4
·
1 Parent(s): 81f3976

feat: html

Browse files
Files changed (1) hide show
  1. presentation.html +288 -197
presentation.html CHANGED
@@ -3,27 +3,29 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Python中最佳的稳定交互式超图可视化库</title>
7
  <style>
8
  body {
9
  font-family: Arial, sans-serif;
10
  margin: 0;
11
  padding: 0;
12
  background-color: #f5f5f5;
 
13
  }
14
  .slide-container {
15
- max-width: 800px;
16
  margin: 0 auto;
17
  background-color: white;
18
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
19
  padding: 20px;
 
20
  }
21
  .slide {
22
- margin-bottom: 30px;
23
  padding: 20px;
24
  border-radius: 5px;
25
  background-color: #fff;
26
  box-shadow: 0 0 5px rgba(0,0,0,0.1);
 
27
  }
28
  .slide h2 {
29
  color: #2c3e50;
@@ -41,28 +43,6 @@
41
  white-space: pre-wrap;
42
  margin: 10px 0;
43
  }
44
- .highlight {
45
- background-color: #e8f4f8;
46
- padding: 2px 5px;
47
- border-radius: 3px;
48
- }
49
- .navigation {
50
- text-align: center;
51
- margin-top: 20px;
52
- }
53
- .navigation button {
54
- padding: 10px 20px;
55
- margin: 0 10px;
56
- background-color: #3498db;
57
- color: white;
58
- border: none;
59
- border-radius: 5px;
60
- cursor: pointer;
61
- font-size: 16px;
62
- }
63
- .navigation button:hover {
64
- background-color: #2980b9;
65
- }
66
  table {
67
  width: 100%;
68
  border-collapse: collapse;
@@ -76,221 +56,332 @@
76
  th {
77
  background-color: #f2f2f2;
78
  }
79
- .comparison {
80
- font-weight: bold;
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  color: #2c3e50;
82
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  </style>
84
  </head>
85
  <body>
86
  <div class="slide-container">
87
- <div class="slide" id="slide1">
88
- <h2>Python中最佳的稳定交互式超图可视化库</h2>
89
- <p>超图是传统图的推广,为建模以实体间多向交互为特征的复杂系统提供了一个强大的框架。与标准图中边精确连接两个节点不同,超图中的超边可以连接任意数量的节点。</p>
90
- <p>本报告旨在确定Python库,该库在稳定性(特别是对于大型和复杂的超图)和交互功能方面提供了最佳组合,以促进对其进行探索和分析。</p>
91
- </div>
92
-
93
- <div class="slide" id="slide2" style="display: none;">
94
- <h2>主要Python超图可视化库</h2>
95
- <p>通过研究,确定了四个主要的Python库,它们提供超图可视化功能:</p>
96
  <ul>
97
- <li><strong>HyperNetX (HNX)</strong>:由太平洋西北国家实验室 (PNNL) 开发,专注于使用代数拓扑和组合学方法分析和可视化复杂网络。</li>
98
- <li><strong>Hypergraphx (HGX)</strong>:较新的库,提供全面的算法用于构建、分析和可视化具有高级交互的系统。</li>
99
- <li><strong>XGI (CompleX Group Interactions)</strong>:由网络科学家设计,专注于建模、分析和可视化具有群体交互的复杂系统。</li>
100
- <li><strong>dhg (DeepHypergraph)</strong>:基于PyTorch的深度学习库,专门设计用于图和超图神经网络。</li>
101
  </ul>
102
  </div>
103
 
104
- <div class="slide" id="slide3" style="display: none;">
105
- <h2>HyperNetX (HNX)</h2>
106
- <p>HyperNetX最初于2019年发布,由PNNL开发,专注于使用代数拓扑和组合学方法分析和可视化复杂网络。</p>
107
- <p>交互功能:</p>
108
- <ul>
109
- <li>通过HyperNetX-Widget提供交互功能,包括力导向布局、高级选择机制(单击、多选、拖动、刷选)。</li>
110
- <li>支持节点折叠,将具有相同边成员关系的节点分组为超级节点。</li>
111
- <li>提供二分图视图,显示超图的替代视角。</li>
112
- </ul>
113
- <p>稳定性:</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  <ul>
115
- <li>核心库稳定,利用Pandas DataFrames提高性能。</li>
116
- <li>HNX-Widget目前处于beta阶段,建议在Anaconda环境中使用。</li>
 
 
117
  </ul>
 
118
  </div>
119
 
120
- <div class="slide" id="slide4" style="display: none;">
121
- <h2>Hypergraphx (HGX)</h2>
122
- <p>Hypergraphx于2023年发布,是一个多用途高级网络分析工具。</p>
123
- <p>交互功能:</p>
124
  <ul>
125
- <li>提供“不同的可视化工具”,但具体交互功能(如缩放、平移、节点选择)未详细说明。</li>
 
126
  </ul>
127
- <p>稳定性:</p>
128
  <ul>
129
- <li>在分析任务中具有良好的可扩展性,适用于非常大的超图。</li>
130
- <li>其可视化功能对于大型数据集的稳定性未明确说明。</li>
131
  </ul>
132
  </div>
133
 
134
- <div class="slide" id="slide5" style="display: none;">
135
- <h2>XGI (CompleX Group Interactions)</h2>
136
- <p>XGI于2021年发布,专注于建模、分析和可视化具有群体交互的复杂系统。</p>
137
- <p>交互功能:</p>
138
  <ul>
139
- <li>提供“方便的可视化功能”,但具体交互功能未详细说明。</li>
 
140
  </ul>
141
- <p>稳定性:</p>
142
  <ul>
143
- <li>已用于涉及超图的可扩展张量方法的研究。</li>
144
- <li>缺乏其可视化对于大型超图的稳定性的直接证据。</li>
145
  </ul>
146
  </div>
147
 
148
- <div class="slide" id="slide6" style="display: none;">
149
- <h2>dhg (DeepHypergraph)</h2>
150
- <p>dhg于2022年发布,是一个基于PyTorch的深度学习库,专注于图和超图神经网络。</p>
151
- <p>交互功能:</p>
 
 
 
 
 
 
152
  <ul>
153
- <li>提供“强大的图和超图可视化工具”,但具体交互功能未详细说明。</li>
 
154
  </ul>
155
- <p>稳定性:</p>
 
 
 
 
 
 
 
 
 
156
  <ul>
157
- <li>性能重点在于超图上的深度学习。</li>
158
- <li>缺乏关于其可视化对于广泛超图的稳定性的具体信息。</li>
 
159
  </ul>
160
  </div>
161
 
162
- <div class="slide" id="slide7" style="display: none;">
163
- <h2>库功能比较</h2>
164
- <table>
165
- <tr>
166
- <th>功能</th>
167
- <th>HyperNetX</th>
168
- <th>Hypergraphx</th>
169
- <th>XGI</th>
170
- <th>dhg</th>
171
- </tr>
172
- <tr>
173
- <td>缩放</td>
174
- <td>是</td>
175
- <td>否</td>
176
- <td>否</td>
177
- <td>否</td>
178
- </tr>
179
- <tr>
180
- <td>平移</td>
181
- <td>是</td>
182
- <td>否</td>
183
- <td>否</td>
184
- <td>否</td>
185
- </tr>
186
- <tr>
187
- <td>节点选择</td>
188
- <td>是</td>
189
- <td>否</td>
190
- <td>否</td>
191
- <td>否</td>
192
- </tr>
193
- <tr>
194
- <td>边选择</td>
195
- <td>是</td>
196
- <td>否</td>
197
- <td>否</td>
198
- <td>否</td>
199
- </tr>
200
- <tr>
201
- <td>拖拽</td>
202
- <td>是</td>
203
- <td>否</td>
204
- <td>否</td>
205
- <td>否</td>
206
- </tr>
207
- <tr>
208
- <td>刷选</td>
209
- <td>是</td>
210
- <td>否</td>
211
- <td>否</td>
212
- <td>否</td>
213
- </tr>
214
- <tr>
215
- <td>工具提示</td>
216
- <td>是</td>
217
- <td>否</td>
218
- <td>否</td>
219
- <td>否</td>
220
- </tr>
221
- <tr>
222
- <td>节点折叠</td>
223
- <td>是</td>
224
- <td>否</td>
225
- <td>否</td>
226
- <td>否</td>
227
- </tr>
228
- <tr>
229
- <td>二分图视图</td>
230
- <td>是</td>
231
- <td>是</td>
232
- <td>是</td>
233
- <td>否</td>
234
- </tr>
235
- <tr>
236
- <td>属性控制</td>
237
- <td>是</td>
238
- <td>否</td>
239
- <td>是</td>
240
- <td>否</td>
241
- </tr>
242
- </table>
243
  </div>
244
 
245
- <div class="slide" id="slide8" style="display: none;">
246
- <h2>结论与建议</h2>
247
- <p>根据比较分析,HyperNetX (HNX) 通过其 HyperNetX-Widget 提供了最全面的超图可视化交互功能集。</p>
248
- <ul>
249
- <li>HNX 的交互功能包括布局调整、高级选择、可见性操作和属性控制。</li>
250
- <li>核心 HNX 库稳定且文档完善,拥有支持性的社区和交互式教程等资源。</li>
251
- <li>对于处理大型超图,HNX 提供节点折叠作为视觉辅助。</li>
252
- </ul>
253
- <p>建议:</p>
254
  <ul>
255
- <li>首先使用 HyperNetX,因为它具有明确的交互功能以及核心库的稳定性。</li>
256
- <li>如果对极其庞大的超图的稳定性成为首要关注点,而交互式探索是次要的,则建议进一步评估 Hypergraphx。</li>
 
257
  </ul>
258
  </div>
259
 
260
- <div class="navigation">
261
- <button onclick="prevSlide()">上一页</button>
262
- <button onclick="nextSlide()">下一页</button>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  </div>
264
- </div>
265
-
266
- <script>
267
- let currentSlide = 1;
268
- const totalSlides = 8;
269
 
270
- function showSlide(n) {
271
- // 隐藏所有幻灯片
272
- for (let i = 1; i <= totalSlides; i++) {
273
- document.getElementById(`slide${i}`).style.display = 'none';
274
- }
275
- // 显示当前幻灯片
276
- document.getElementById(`slide${n}`).style.display = 'block';
277
- currentSlide = n;
278
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
279
 
280
- function nextSlide() {
281
- if (currentSlide < totalSlides) {
282
- showSlide(currentSlide + 1);
283
- }
284
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
285
 
286
- function prevSlide() {
287
- if (currentSlide > 1) {
288
- showSlide(currentSlide - 1);
289
- }
290
- }
 
 
 
 
 
 
 
 
 
 
 
291
 
292
- // 初始化显示第一页
293
- showSlide(1);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
  </script>
295
  </body>
296
  </html>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>基于Python的最佳稳定交互式超图可视化库分析</title>
7
  <style>
8
  body {
9
  font-family: Arial, sans-serif;
10
  margin: 0;
11
  padding: 0;
12
  background-color: #f5f5f5;
13
+ overflow-x: hidden;
14
  }
15
  .slide-container {
16
+ max-width: 1200px;
17
  margin: 0 auto;
18
  background-color: white;
19
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
20
  padding: 20px;
21
+ position: relative;
22
  }
23
  .slide {
 
24
  padding: 20px;
25
  border-radius: 5px;
26
  background-color: #fff;
27
  box-shadow: 0 0 5px rgba(0,0,0,0.1);
28
+ margin-bottom: 20px;
29
  }
30
  .slide h2 {
31
  color: #2c3e50;
 
43
  white-space: pre-wrap;
44
  margin: 10px 0;
45
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  table {
47
  width: 100%;
48
  border-collapse: collapse;
 
56
  th {
57
  background-color: #f2f2f2;
58
  }
59
+ a {
60
+ color: #3498db;
61
+ text-decoration: none;
62
+ }
63
+ a:hover {
64
+ text-decoration: underline;
65
+ }
66
+ .interactive-element {
67
+ margin: 20px 0;
68
+ padding: 15px;
69
+ background-color: #f8f9fa;
70
+ border-radius: 5px;
71
+ }
72
+ .interactive-element h3 {
73
+ margin-top: 0;
74
  color: #2c3e50;
75
  }
76
+ .interactive-element p {
77
+ margin-bottom: 10px;
78
+ }
79
+ .interactive-element button {
80
+ padding: 8px 15px;
81
+ margin: 5px;
82
+ background-color: #3498db;
83
+ color: white;
84
+ border: none;
85
+ border-radius: 3px;
86
+ cursor: pointer;
87
+ }
88
+ .interactive-element button:hover {
89
+ background-color: #2980b9;
90
+ }
91
+ .tab-container {
92
+ display: flex;
93
+ margin: 20px 0;
94
+ }
95
+ .tab {
96
+ padding: 10px 20px;
97
+ background-color: #f2f2f2;
98
+ border: 1px solid #ddd;
99
+ cursor: pointer;
100
+ }
101
+ .tab.active {
102
+ background-color: #3498db;
103
+ color: white;
104
+ }
105
+ .tab-content {
106
+ padding: 20px;
107
+ border: 1px solid #ddd;
108
+ border-top: none;
109
+ display: none;
110
+ }
111
+ .tab-content.active {
112
+ display: block;
113
+ }
114
  </style>
115
  </head>
116
  <body>
117
  <div class="slide-container">
118
+ <div class="slide">
119
+ <h2>基于Python的最佳稳定交互式超图可视化库分析</h2>
120
+ <p>超图(Hypergraph)允许边连接任意数量的顶点,比传统图(Graph)更适合描述多对多关系(如科研合作网络、基因调控网络等)。</p>
121
+ <p>超图可视化面临两大核心挑战:</p>
 
 
 
 
 
122
  <ul>
123
+ <li><strong>高维度边表示</strong>:超边(Hyperedge)的几何形态难以直观呈现,传统Venn图或Euler图在大规模数据下可读性差。</li>
124
+ <li><strong>动态交互需求</strong>:动态超图需要时间维度与空间结构的同步展示,对布局算法和用户交互提出更高要求。</li>
 
 
125
  </ul>
126
  </div>
127
 
128
+ <div class="slide">
129
+ <h2>Python中主流超图库的对比分析</h2>
130
+ <p>以下从稳定性、交互性和维护状态三个维度,对HyperNetX、XGI、HGX等库进行深入评估:</p>
131
+ <table>
132
+ <tr>
133
+ <th>库名称</th>
134
+ <th>维护机构/团队</th>
135
+ <th>最新版本</th>
136
+ <th>更新频率</th>
137
+ <th>社区活跃度</th>
138
+ <th>交互功能支持</th>
139
+ <th>中文文档覆盖</th>
140
+ </tr>
141
+ <tr>
142
+ <td>HyperNetX</td>
143
+ <td>太平洋西北国家实验室 (PNNL)</td>
144
+ <td>2.3 (2023)</td>
145
+ <td>高频</td>
146
+ <td>⭐⭐⭐⭐</td>
147
+ <td>Jupyter Widget动态交互、布局调整</td>
148
+ <td>部分教程</td>
149
+ </tr>
150
+ <tr>
151
+ <td>XGI</td>
152
+ <td>国际跨学科研究团队</td>
153
+ <td>0.7 (2023)</td>
154
+ <td>中频</td>
155
+ <td>⭐⭐⭐</td>
156
+ <td>Matplotlib静态绘图、布局自定义</td>
157
+ <td>无</td>
158
+ </tr>
159
+ <tr>
160
+ <td>HGX</td>
161
+ <td>HGX-Team</td>
162
+ <td>1.0 (2023)</td>
163
+ <td>中频</td>
164
+ <td>⭐⭐</td>
165
+ <td>基础可视化、动态过程模拟</td>
166
+ <td>无</td>
167
+ </tr>
168
+ <tr>
169
+ <td>NetworkX</td>
170
+ <td>开源社区</td>
171
+ <td>3.1 (2024)</td>
172
+ <td>高频</td>
173
+ <td>⭐⭐⭐⭐⭐</td>
174
+ <td>仅支持普通图,需超图转换</td>
175
+ <td>有中文文档</td>
176
+ </tr>
177
+ </table>
178
+ </div>
179
+
180
+ <div class="slide">
181
+ <h2>HyperNetX:交互式可视化标杆</h2>
182
+ <p><a href="https://pnnl.github.io/hypernetx-widget/" target="_blank">hnx-widget 0.1.0-beta.4 Demo</a></p>
183
+ <p><strong>核心优势</strong>:</p>
184
  <ul>
185
+ <li><strong>动态交互</strong>:通过HyperNetX-Widget实现Jupyter Notebook内的实时节点拖拽、属性面板查看、超边合并/拆分。</li>
186
+ <li><strong>算法扩展</strong>:支持星形扩展(Star Expansion)和团扩展(Clique Expansion),将超图转换为普通图进行传统算法适配。</li>
187
+ <li><strong>动态超图支持</strong>:整合PAOHvis技术,以并行水平条表示顶点、垂直线表示超边,实现时间演变的无重叠可视化。</li>
188
+ <li><strong>稳定性保障</strong>:由国家级实验室维护,代码质量通过Pylint/Black严格检查,依赖管理使用Poetry。</li>
189
  </ul>
190
+ <p><strong>应用场景</strong>:适用于中等规模动态超图(如论文合作网络演化分析)。</p>
191
  </div>
192
 
193
+ <div class="slide">
194
+ <h2>XGI:高阶网络分析的轻量选择</h2>
195
+ <p><strong>核心优势</strong>:</p>
 
196
  <ul>
197
+ <li><strong>API友好性</strong>:继承NetworkX的API设计,支持add_edge()直接添加超边,降低学习成本。</li>
198
+ <li><strong>统计模块丰富</strong>:提供节点度分布、超边大小直方图等分析工具,支持单纯复形(Simplicial Complex)的拓扑分析。</li>
199
  </ul>
200
+ <p><strong>局限性</strong>:</p>
201
  <ul>
202
+ <li>可视化依赖Matplotlib,交互性较弱,需手动调用draw()函数更新图形。</li>
 
203
  </ul>
204
  </div>
205
 
206
+ <div class="slide">
207
+ <h2>HGX:高阶网络的全功能工具箱</h2>
208
+ <p><strong>核心优势</strong>:</p>
 
209
  <ul>
210
+ <li><strong>算法覆盖面广</strong>:提供加权/有向超边、动态过程模拟(如传染病模型)、多层超图分析。</li>
211
+ <li><strong>数据兼容性</strong>:支持CSV/JSON格式输入,内置高中合作等现实数据集。</li>
212
  </ul>
213
+ <p><strong>局限性</strong>:</p>
214
  <ul>
215
+ <li>社区规模较小,文档以英文为主,可视化功能不如HyperNetX直观。</li>
 
216
  </ul>
217
  </div>
218
 
219
+ <div class="slide">
220
+ <h2>选型建议与使用策略</h2>
221
+ <p><strong>优先选择HyperNetX</strong>:若需求聚焦于交互式探索和动态超图,HyperNetX的Widget和PAOHvis技术为最优解。</p>
222
+ <div class="code-block">
223
+ from hypernetx import HyperNetXWidget<br>
224
+ H = hnx.Hypergraph(data) # 数据加载<br>
225
+ widget = HyperNetXWidget(H, layout='barycenter_spring')<br>
226
+ widget.show() # Jupyter中显示交互面板
227
+ </div>
228
+ <p><strong>备选XGI或HGX</strong>:</p>
229
  <ul>
230
+ <li><strong>快速原型开发</strong>:XGI的NetworkX式API适合快速验证算法。</li>
231
+ <li><strong>复杂系统建模</strong>:HGX的生成模型(如优先连接模型)适合社会网络仿真。</li>
232
  </ul>
233
+ <p><strong>NetworkX的补充作用</strong>:通过超图转换(如星形扩展)复用传统图算法。</p>
234
+ <div class="code-block">
235
+ import networkx as nx<br>
236
+ star_graph = hnx.convert_to_star(H) # 超图转普通图<br>
237
+ nx.draw(star_graph, with_labels=True)
238
+ </div>
239
+ </div>
240
+
241
+ <div class="slide">
242
+ <h2>未来研究方向</h2>
243
  <ul>
244
+ <li><strong>混合布局算法</strong>:结合力导向布局与层次布局,优化超边重叠问题(参考PAOHvis的并行聚合技术)。</li>
245
+ <li><strong>GPU加速渲染</strong>:利用CUDA加速大规模超图的可视化计算(如NVIDIA HGX架构的潜在适配)。</li>
246
+ <li><strong>中文社区建设</strong>:推动HyperNetX中文教程本地化,降低非英语用户门槛。</li>
247
  </ul>
248
  </div>
249
 
250
+ <div class="slide">
251
+ <h2>总结</h2>
252
+ <p>HyperNetX凭借其交互式组件和国家级实验室背书,成为Python中超图可视化的首选。XGI和HGX在特定场景(如高阶统计、动态模拟)中表现优异,而NetworkX可作为辅助工具。</p>
253
+ <p>随着动态超图需求的增长,未来库的优化需重点关注时间维度表达与计算性能提升。</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  </div>
255
 
256
+ <div class="slide">
257
+ <h2>iMoon Lab:超图计算研究前沿</h2>
258
+ <p><a href="https://moon-lab.tech/" target="_blank">Intelligent Media and Cognition Lab (iMoon Lab)</a></p>
259
+ <p>iMoon Lab主要研究人工智能、计算机视觉和数据挖掘,特别关注超图计算理论、方法和应用。</p>
260
+ <p><strong>研究方向</strong>:</p>
 
 
 
 
261
  <ul>
262
+ <li>超图计算理论与超图神经网络方法。</li>
263
+ <li>计算机视觉中的应用:2D/3D注册、3D场景建模、立体物体识别、基于事件数据的视觉数据增强。</li>
264
+ <li>医学超图计算:高阶脑网络分析、医学辅助诊断、病理图像检索与分析。</li>
265
  </ul>
266
  </div>
267
 
268
+ <div class="slide">
269
+ <h2>基于Streamlit的数据交互逻辑设计</h2>
270
+ <div class="interactive-element">
271
+ <h3>Streamlit简介</h3>
272
+ <p>Streamlit是一个用于创建Web应用的Python库,可以帮助我们快速构建交互式的数据应用。</p>
273
+ <p>特点:</p>
274
+ <ul>
275
+ <li>简单易用</li>
276
+ <li>支持实时交互</li>
277
+ <li>自动刷新</li>
278
+ <li>支持���种数据格式</li>
279
+ </ul>
280
+ </div>
281
+ <div class="interactive-element">
282
+ <h3>数据交互逻辑</h3>
283
+ <p>通过侧边栏控件(如滑动条、选择框)实现参数调整。</p>
284
+ <p>动态更新可视化结果,支持用户交互(如点击、选择、拖动)。</p>
285
+ <p>支持数据筛选、排序、聚合等操作。</p>
286
+ </div>
287
  </div>
 
 
 
 
 
288
 
289
+ <div class="slide">
290
+ <h2>Streamlit代码示例</h2>
291
+ <div class="code-block">
292
+ import streamlit as st<br>
293
+ import pandas as pd<br>
294
+ import numpy as np<br>
295
+ import plotly.express as px<br>
296
+ import hypernetx as hnx<br>
297
+ <br>
298
+ def main():<br>
299
+ &nbsp;&nbsp;st.title("超图可视化分析")<br>
300
+ &nbsp;&nbsp;<br>
301
+ &nbsp;&nbsp;# 数据加载<br>
302
+ &nbsp;&nbsp;data = load_data()<br>
303
+ &nbsp;&nbsp;<br>
304
+ &nbsp;&nbsp;# 侧边栏控件<br>
305
+ &nbsp;&nbsp;with st.sidebar:<br>
306
+ &nbsp;&nbsp;&nbsp;&nbsp;st.header("控制面板")<br>
307
+ &nbsp;&nbsp;&nbsp;&nbsp;num_samples = st.slider("选择采样数量", 1, 100, 10)<br>
308
+ &nbsp;&nbsp;&nbsp;&nbsp;display_option = st.selectbox("选择显示选项", ["Top K Clusters", "Clusters Up To Probability P"])<br>
309
+ &nbsp;&nbsp;<br>
310
+ &nbsp;&nbsp;# 数据处理<br>
311
+ &nbsp;&nbsp;sampled_data = process_data(data, num_samples)<br>
312
+ &nbsp;&nbsp;hyperedges = build_hyperedges(sampled_data)<br>
313
+ &nbsp;&nbsp;hypergraph = hnx.Hypergraph(hyperedges)<br>
314
+ &nbsp;&nbsp;<br>
315
+ &nbsp;&nbsp;# 可视化<br>
316
+ &nbsp;&nbsp;if st.checkbox("显示超图", True):<br>
317
+ &nbsp;&nbsp;&nbsp;&nbsp;visualize_hypergraph(hypergraph)<br>
318
+ &nbsp;&nbsp;if st.checkbox("显示统计信息", False):<br>
319
+ &nbsp;&nbsp;&nbsp;&nbsp;visualize_statistics(sampled_data)<br>
320
+ <br>
321
+ if __name__ == "__main__":<br>
322
+ &nbsp;&nbsp;main()
323
+ </div>
324
+ </div>
325
 
326
+ <div class="slide">
327
+ <h2>Streamlit交互功能</h2>
328
+ <div class="interactive-element">
329
+ <h3>交互控件</h3>
330
+ <p>滑动条:调整参数(如采样数量、K值等)。</p>
331
+ <p>选择框:选择显示选项(如Top K Clusters、Clusters Up To Probability P)。</p>
332
+ <p>复选框:控制可视化内容的显示与隐藏。</p>
333
+ </div>
334
+ <div class="interactive-element">
335
+ <h3>动态更新</h3>
336
+ <p>用户调整参数后,页面自动刷新并更新可视化结果。</p>
337
+ <p>支持实时交互,如点击节点查看详情、拖动节点调整布局。</p>
338
+ </div>
339
+ <div class="interactive-element">
340
+ <h3>数据导出</h3>
341
+ <p>支持将可视化结果导出为图片或PDF。</p>
342
+ <p>支持将处理后的数据导出为CSV或JSON格式。</p>
343
+ </div>
344
+ </div>
345
 
346
+ <div class="slide">
347
+ <h2>Streamlit与超图可视化结合</h2>
348
+ <div class="interactive-element">
349
+ <h3>优势</h3>
350
+ <p>快速构建交互式Web应用,无需编写前端代码。</p>
351
+ <p>支持多种可视化库(如Plotly、Matplotlib、HyperNetX)。</p>
352
+ <p>易于集成机器学习模型和数据分析工具。</p>
353
+ </div>
354
+ <div class="interactive-element">
355
+ <h3>应用场景</h3>
356
+ <p>科研数据分析:可视化超图结构,探索高阶交互关系。</p>
357
+ <p>教育与教学:创建交互式教学工具,帮助学生理解复杂概念。</p>
358
+ <p>商业智能:构建交互式仪表板,支持决策制定。</p>
359
+ </div>
360
+ </div>
361
+ </div>
362
 
363
+ <script>
364
+ // 交互功能示���
365
+ document.addEventListener('DOMContentLoaded', function() {
366
+ // 标签切换功能
367
+ const tabs = document.querySelectorAll('.tab');
368
+ tabs.forEach(tab => {
369
+ tab.addEventListener('click', function() {
370
+ // 移除所有标签的active类
371
+ tabs.forEach(t => t.classList.remove('active'));
372
+ // 为当前点击的标签添加active类
373
+ this.classList.add('active');
374
+
375
+ // 隐藏所有内容
376
+ const contents = document.querySelectorAll('.tab-content');
377
+ contents.forEach(content => content.classList.remove('active'));
378
+
379
+ // 显示当前标签对应的内容
380
+ const targetContent = document.querySelector(this.getAttribute('data-target'));
381
+ targetContent.classList.add('active');
382
+ });
383
+ });
384
+ });
385
  </script>
386
  </body>
387
  </html>