簡體   English   中英

具有節點顏色字典的透明和彩色.networkx 節點?

[英]Transparant, and coloured, networkx nodes with a node colour dictionary?

在繪制具有不同顏色節點的 .networkx 圖時,我試圖使其中一些節點透明。 根據這篇文章的最后一個答案,這似乎是可能的。 但是,我在設置顏色和透明度值時遇到了一些困難。

類似於鏈接帖子中的給定答案,我嘗試過:

for node_name in G.nodes:
    if node_name[:4] == "red_":
        colour_dict[node_name] = ["olive",0.5]
    else:
        colour_dict[node_name] = ["yellow",1]
nx.draw(
        G,
        nx.get_node_attributes(G, "pos"),
        with_labels=True,
        node_size=160,
        font_size=6,
        width=0.2,
        node_color=color_map,
        edge_color=edge_color_map,
        # **options,
    )

哪個返回:

ValueError: 'c' 參數必須是顏色、colors 的序列或數字序列,而不是 [['olive', 1], ['olive', 1], ['olive', 1], ['橄欖', 1], ['橄欖', 1], ['橄欖', 1], ['橄欖', 1], ['橄欖', 1], ['橄欖', 1], ['橄欖' , 1], ['橄欖', 1], ['橄欖', 1], ['橄欖', 1], ['橄欖', 1], ['橄欖', 1], ['橄欖', 1] ], ['橄欖', 1], ['橄欖', 1]]

因此,我想問一下,如何設置節點顏色並同時使其透明(例如50%透明)?

下面描述了您選擇的方法的兩種替代方法:

  1. 您可以使用此答案中顯示的方法獲取指定顏色的 rgb 值,而不是搜索所需的 colors 的 rgb 值(只需使用colors.to_rgb()而不是colors.to_rgba() ),然后 append使用此答案中描述的方法將所需的 alpha 值添加到元組的末尾。

  2. 使用nx.draw.networkx_nodes單獨繪制節點可能更方便。通過這樣做,您可以將 colors 的列表傳遞給node_color並將 alpha 值列表傳遞給alpha 使用您定義的colour_dict ,您可以輕松創建這些列表以傳遞到繪圖 function 中。如果您願意,可以在此問題和答案中找到更多詳細信息。

答案是查找我想要的顏色的 rgb 代碼(紅色范圍為 0-1,綠色范圍為 0-1,藍色范圍為 0-1),並使用元組而不是設置節點顏色字典一個列表:

  colour_dict[node_name] = (0,0,1,0.5)

對於藍色節點(紅色=0,綠色=0,藍色=0),透明度為 50%。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM