Nat*_*ate 4 python matplotlib networkx
我想通过节点属性的值为图中的节点着色,并且对于属性的特定值,我想应用渐变。这与我所看到的(许多!)其他响应不同,这些响应旨在为图中所有节点的matplotlibcmap(例如cmap = plt.get_cmap('Greens'))中的节点添加颜色。我想将一种颜色应用于一种类型的节点,并将颜色映射应用于另一种类型的节点。
这是我迄今为止尝试过的。我认为这是失败,因为我想添加一个字符串(如“黄”)和RGBA值(例如cmap(dict_1[node]))来color_map,然后我使用的node_color参数nx.draw()。
import networkx as nx
import matplotlib.pyplot as plt
color_map = []
cmap = plt.get_cmap('Greens')
for node in g:
if node in list_1:
color_map.append('yellow')
elif node in list_2:
rgba = cmap(dict_1[node])
color_map.append(rgba*-1)
nx.draw(g, node_color = color_map, node_size = 75)
Run Code Online (Sandbox Code Playgroud)
color_map当我只按名称向 中添加颜色color_map,而不是在当前表单中时,该方法工作得很好。
嗯,我找到了解决方案。
我更改了 elif 语句以使用我修改的新函数:convert_to_hex,并将输出放入 color_map - 它按预期工作。
def convert_to_hex(rgba_color) :
red = int(rgba_color[0]*255)
green = int(rgba_color[1]*255)
blue = int(rgba_color[2]*255)
return '#%02x%02x%02x' % (red, green, blue)
import networkx as nx
import matplotlib.pyplot as plt
color_map = []
cmap = plt.get_cmap('Greens')
for node in g:
if node in list_1:
color_map.append('yellow')
elif node in list_2:
rgba = cmap(dict_1[node])
color_map.append(convert_to_hex(rgba))
nx.draw(g, node_color = color_map, node_size = 75)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8097 次 |
| 最近记录: |