繁体   English   中英

如何更改 Networkx 图中背景的颜色?

[英]How to change the color of the background in a Networkx plot?

我正在尝试使用 matplotlib 更改 networkx 生成的图形的背景颜色。 但似乎我的代码只更改了外部背景,而不是图形本身的背景。 示例代码:

import psutil
import networkx as nx
import matplotlib.pyplot as plt

mlist = psutil.net_connections(kind="all")
Node = nx.Graph()

Node.add_node("localhost")

for v, val in enumerate(mlist):
    if val[4] != () and val[4][0] != "127.0.0.1":
        print(str(val[4][0]) + " - " + str(val[6]))
        print(psutil.Process(val[6]).name())
        Node.add_node(str(val[4][0]))
        Node.add_edge(str(val[4][0]), "localhost")

fig = plt.figure()
nx.draw_networkx(Node, pos=nx.spring_layout(Node, 25), bg_color=[1,1,1,1], alpha=0.1, with_labels=False, node_size=100, node_color="green")
fig.set_facecolor("blue")

plt.show()

您可以使用ax.set_facecolor更改背景颜色。 如果您没有创建ax ,则可以使用plt.gca().set_facecolor 如果您还想删除黑色边框,请使用ax.axis('off') 请注意, bg_color=nx.draw_networkx被忽略。

import networkx as nx
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
nx.draw_networkx(nx.dodecahedral_graph(),
                 with_labels=False, node_shape='*', node_size=300, node_color='gold',
                 edge_color='crimson', width=5)
ax.set_facecolor('deepskyblue')
ax.axis('off')
fig.set_facecolor('deepskyblue')
plt.show()

结果

这对我有用:

fig, ax = plt.subplots(nrows=1, ncols=1)
nx.draw_networkx(Node, pos=nx.spring_layout(Node, 25), bg_color=[1,1,1,1], alpha=0.1, with_labels=False, node_size=100, node_color="green")
ax.set_facecolor("blue")

plt.show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM