matplotlib 是否将标题添加到Networkx图?

f8rj6qna  于 2022-11-15  发布在  其他
关注(0)|答案(3)|浏览(133)

我想让我的代码创建一个有标题的情节。下面的代码创建了情节,但没有标题。有人能告诉我我做错了什么吗?

import pandas as pd   
import networkx as nx
from networkx.algorithms import community
import matplotlib.pyplot as plt
from datetime import datetime

...

G = nx.from_pandas_edgelist((df), 'AXIS1', 'AXIS2');
nx.draw(G,with_labels=True)

plt.title('TITLE')
plt.axis('off')
plt.savefig('test.png');
x0fgdtte

x0fgdtte1#

我只能想到在调用plt.title之前触发对plt.show的调用的中间步骤(尽管看起来共享代码不应该是这种情况)。尝试预先设置标题,并设置一个ax,下面是一个示例:

plt.figure(figsize=(10,5))
ax = plt.gca()
ax.set_title('Random graph')
G = nx.fast_gnp_random_graph(10,0.2)
nx.draw(G,with_labels=True, node_color='lightgreen', ax=ax)
_ = ax.axis('off')

mf98qq94

mf98qq942#

也许OP不再需要这个了,但是对于未来的搜索者来说:标题会显示它是否在呼叫nx.draw()之前加入,例如

plt.figure()  
plt.title(plot_title)
nx.draw(G, node_size=20)
plt.show()
ru9i0ody

ru9i0ody3#

我的建议是定义一个新的图,其中包含一个节点:

title=nx.Graph()
title.add_node(f'Title')
nx.draw(title, with_labels = True,  pos=nx.spring_layout(title, seed=0, center=(0, 0)), node_color='#fff')

然后把这个图放在你想要的图旁边,你应该使用center参数把这个节点放在一个合适的位置。这就是我在下面的图中添加标签R(2),R(1),...的方法。

相关问题