【问题标题】:Python graphing from csv来自 csv 的 Python 绘图
【发布时间】:2016-02-22 20:00:03
【问题描述】:

我提取了 6 个月的电子邮件元数据并将其保存为 csv 文件。 csv 现在只包含两列(来自和到电子邮件地址)。我想构建一个图,其中顶点是我正在与之通信的人以及与我进行通信的人,并且边缘是由通信链接创建的,该通信链接通过我有多少通信来标记边缘。解决此问题的最佳方法是什么?

【问题讨论】:

标签: python python-2.7 csv graphing


【解决方案1】:

一种方法是使用关联数据原则(但如果您时间紧迫且没有关联数据背景,则不建议这样做)。这是一种可能的方法:

  1. 将每个实体描述为一个 URI
  2. 使用现有的本体(例如 foaf)来描述数据
  3. 将数据转换为资源描述框架 (RDF)
  4. 使用 RDF 可视化工具。

由于 RDF 本质上是一个图表,您将能够可视化您的数据并对其进行扩展。

如果您不熟悉关联数据,可以使用Pajek (http://vlado.fmf.uni-lj.si/pub/networks/pajek/) 查看图形。这种方法要简单得多,但缺乏语义互操作性的好处,前提是您首先关心它们。

【讨论】:

    【解决方案2】:

    Cytoscape 或许能够以该格式导入您的数据并从中构建网络。

    http://www.cytoscape.org/

    【讨论】:

      【解决方案3】:

      您的问题(在提到 Python 时)并没有说明您想用 Python 做什么或做多少。我假设 Python 是一个你知道的工具,但主要目标是让数据可视化。在这种情况下:

      1) 使用Gephi network analysis tool - 有一些工具可以按原样使用您的 CSV 文件,Gephi 就是其中之一。在您的情况下,需要保留边缘权重(= 交换的电子邮件数量 b/w 2 个电子邮件地址),这可以使用 "mixed" variation of Gephi's CSV format 来完成。

      2) 另一种选择是预处理您的 CSV 文件(例如使用 Python),计算边缘权重(每 2 个电子邮件地址之间的电子邮件数量)并将其保存为您喜欢的任何格式。结果可以在网络分析工具(例如 Gephi)或直接在 Python 中(例如使用https://graph-tool.skewed.de)可视化。

      这是email network analysis project 的示例(尽管他们的图表没有显示权重)。

      【讨论】:

        猜你喜欢
        • 2021-08-20
        • 2018-06-12
        • 2020-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-13
        • 1970-01-01
        • 2015-04-29
        相关资源
        最近更新 更多