小编Jos*_*osé的帖子

从DataFrame到NetworkX加载具有属性和边的节点

我是使用Python处理图形的新手:NetworkX.到现在为止我使用过Gephi.标准步骤(但不是唯一可行的)是:

  1. 从表/电子表格加载节点信息; 其中一列应该是ID,其余的是关于节点的元数据(节点是人,因此性别,组...通常用于着色).喜欢:

    id;NormalizedName;Gender
    per1;Jesús;male
    per2;Abraham;male
    per3;Isaac;male
    per4;Jacob;male
    per5;Judá;male
    per6;Tamar;female
    ...
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后从表/电子表格加载边缘,使用与节点电子表格的列ID中的节点相同的名称,通常有四列(目标,来源,重量和类型):

    Target;Source;Weight;Type
    per1;per2;3;Undirected
    per3;per4;2;Undirected
    ...
    
    Run Code Online (Sandbox Code Playgroud)

这是我拥有的两个数据帧,我想用Python加载它们.阅读关于NetworkX,似乎不太可能将两个表(一个用于节点,一个用于边缘)加载到同一个图表中,我不确定最好的方法是什么:

  1. 我应该仅使用DataFrame中的节点信息创建图形,然后添加(追加)来自其他DataFrame的边缘吗?如果是这样,并且因为nx.from_pandas_dataframe()需要有关边的信息,我想我不应该用它来创建节点......我应该只是将信息作为列表传递?

  2. 我是否应该仅使用DataFrame中的边信息创建图形,然后将来自其他DataFrame的信息作为属性添加到每个节点?有没有比迭代DataFrame和节点更好的方法呢?

python graph networkx pandas

12
推荐指数
3
解决办法
9797
查看次数

在Pandas v0.20和matplotlib中为条形指定颜色的问题

我正在使用Pandas和Matplotlib在条形图中定义颜色一段时间.让我们假设我们有以下数据帧:

import pandas as pd
pers1 = ["Jesús","lord",2]
pers2 = ["Mateo","apostel",1]
pers3 = ["Lucas","apostel",1]

dfnames = pd.DataFrame([pers1,pers2, pers3], columns=["name","type","importance"])
Run Code Online (Sandbox Code Playgroud)

现在,我想创建一个条形图,其重要性为数值,人物名称为刻度,并使用类型列指定颜色.我已经阅读了其他问题(例如:为定义的列定义Pandas/Matplotlib的条形图颜色)但它不起作用......

所以,首先我必须定义颜色并将它们分配给不同的值:

colors = {'apostel':'blue','lord':'green'}
Run Code Online (Sandbox Code Playgroud)

最后使用.plot()函数:

dfnames.plot(x="name", y="importance", kind="bar", color = dfnames['type'].map(colors))
Run Code Online (Sandbox Code Playgroud)

好.唯一的问题是所有的栏都是绿色的:

在此输入图像描述

为什么??我不知道......我在Spyder和Jupyter进行测试......有什么帮助吗?谢谢!

python plot matplotlib pandas

4
推荐指数
1
解决办法
382
查看次数

标签 统计

pandas ×2

python ×2

graph ×1

matplotlib ×1

networkx ×1

plot ×1