#python #matplotlib #networking
Вопрос:
Я рисую график и хотел бы добавить текст в правом верхнем углу. Однако я не уверен, как это сделать. Я пытался:
import matplotlib.pyplot as plt
import networkx as nx
import pydot
from networkx.drawing.nx_pydot import graphviz_layout
T = nx.balanced_tree(2, 5)
pos = graphviz_layout(T, prog="dot")
nx.draw(T, pos, node_color="y", edge_color='#909090', node_size=200, with_labels=True)
plt.text(0,0,"******************")
plt.show()
чтобы посмотреть, смогу ли я вообще показать какой-либо текст. Он показывает звездочки в левом нижнем углу. Как мне узнать разрешение диаграммы, чтобы я мог определить, где находится верхний правый угол?
Ответ №1:
Вы можете прочитать в networkx.drawing.nx_pylab.draw_networkx
:
draw_networkx(G, pos=Нет, стрелки=Нет, with_labels=True, **kwds)
Параметры:
ax : Объект Оси Matplotlib, необязательно Рисовать график в указанных осях Matplotlib.
Затем вы можете создать fig, axe = plt.subplots()
, передать axe
nx.draw
и добавить заголовок, чтобы axe
затем вы могли показать заголовок для рисования, как показано ниже:
Задайте заголовок с matplotlib.axes.Axes.set_title
помощью , в котором есть параметры для задания местоположения заголовка, включая использование matplotlib.text
аргументов. (например x=1
, или loc='right'
).
import matplotlib.pyplot as plt
import networkx as nx
import pydot
from networkx.drawing.nx_pydot import graphviz_layout
T = nx.balanced_tree(2, 5)
fig, axe = plt.subplots(figsize=(12,7))
axe.set_title('Title for NetworkX', loc='right')
pos = graphviz_layout(T, prog="dot")
nx.draw(T, pos, ax = axe, node_color="y", edge_color='#909090', node_size=200, with_labels=True)
plt.show()
Выход:
- При использовании
x=
заголовок центрируетсяx
по оси x; отрегулируйте значение для точного позиционирования.
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(10, 4))
ax1.set_title('Title for NetworkX', loc='right')
ax2.set_title('Title for NetworkX', x=.68)
ax3.set_title('Title for NetworkX', x=1)
fig.tight_layout()
Комментарии:
1. Я вижу «loc {«центр», «слева», «справа»}, по умолчанию: rcParams[«axes.titlelocation»] (по умолчанию: «центр»)» в matplotlib.org/stable/api/_as_gen/… но ничего для x =1 . Это то же самое, что и loc?
2. Огромное спасибо.
3. @Ануш добро пожаловать 😉