小编Pat*_*llo的帖子

向网络图添加图例以解释节点的着色

我有一个 networkx 图的图,其中边颜色取决于使用以下代码(使用a_netwnx.Graph)分配给各个边的权重:

a_netw_edges = a_netw.edges()
a_netw_weights = [a_netw[source][dest]['weight'] for source, dest in a_netw_edges]
a_netw_colors = [plt.cm.Blues(weight*15) for weight in a_netw_weights]
nx.draw_networkx(a_netw, edges=a_netw_edges, width=1, edge_color=a_netw_colors)
Run Code Online (Sandbox Code Playgroud)

在这个图中,我想添加一个图例,使权重和颜色之间的联系变得明确;就像在使用pcolor.

虽然我对如何开始有一个粗略的想法:

fig, axes = plt.subplots(nrows=2)
nx.draw_networkx(a_netw, edges=a_netw_edges, width=1, edge_color=a_netw_colors, ax=axes[0])
axes[0].get_xaxis().set_visible(False)
axes[0].get_yaxis().set_visible(False)
gradient = np.linspace(0, 1, 256)
gradient = np.vstack((gradient, gradient))
axes[1].imshow(gradient, aspect=3, cmap=plt.cm.Blues)
axes[1].get_yaxis().set_visible(False)
plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)

我不知道如何执行以下步骤:

  1. 在相关轴上添加正确的刻度以获取与权重的连接。
  2. 垂直绘制而不是水平绘制。

python matplotlib networkx

6
推荐指数
1
解决办法
2994
查看次数

通过在groupby之后删除nan来合并DataFrame中的行

给出如下所示的DataFrame:

import numpy as np
import pandas as pd
from pandas import DataFrame

idx = pd.MultiIndex.from_product([["Project 1", "Project 2"], range(1,3)],
                         names=['Project', 'Ord'])
df = DataFrame({'a': ["foo", np.nan, np.nan, "bar"],
                'b': [np.nan, "one", "two", np.nan]},
               index=idx)

Out:

                 a    b
Project   Ord          
Project 1 1    foo  NaN
          2    NaN  one
Project 2 1    NaN  two
          2    bar  NaN
Run Code Online (Sandbox Code Playgroud)

我想合并具有相同外部索引的行(请注意,在每种情况下,只有一个非nan值)。

我当前使用的解决方案涉及两个分组操作:

df.index = df.index.droplevel(1)
df.groupby(df.index).ffill().groupby(df.index).last()
Run Code Online (Sandbox Code Playgroud)

并给了我预期的结果:

Out:
             a    b
Project            
Project 1  foo  one
Project 2  bar  two
Run Code Online (Sandbox Code Playgroud)

必须使用两个groupby-operation似乎过多,因为我需要的是一个聚合函数,该函数从列表中返回单个非nan值。但是,我无法想到将dropna用作聚合函数的方法。

python nan dataframe pandas

3
推荐指数
1
解决办法
456
查看次数

标签 统计

python ×2

dataframe ×1

matplotlib ×1

nan ×1

networkx ×1

pandas ×1