我正在呼叫函式nx.draw來繪制圖形,例如:

我想繪制一個圖,將三個這樣的圖形繪制成一條直線,中間有一個=和\cup符號來表示一個是其他兩個的并集。
例如這樣的事情:

我怎樣才能用 matplotlib 做到這一點?
我試過
import networkx as nx
import matplotlib.pyplot as plt
G=nx.grid_2d_graph(1,5)
plt.subplot(151)
draw_model(composite_argument)
ax = plt.subplot(152)
ax.text(60, 60,"=")
ax.set_xlim(0, 100)
ax.set_ylim(0, 100)
plt.subplot(153)
draw_model(argument1)
ax = plt.subplot(154)
ax.text(60, 60,"U")
ax.set_xlim(0, 100)
ax.set_ylim(0, 100)
plt.subplot(155)
draw_model(argument2)
這導致了一個非常奇怪的情節

uj5u.com熱心網友回復:
你的內心顯然是做錯了draw_model()。也許你打電話plt.figure()或plt.show()?
無論如何,創建子圖的推薦方法是通過plt.subplots(...). 讓 networkx 繪制到子圖中的推薦方法是通過nx.draw(...., ax=...).
請注意,默認情況下,子圖在 x 和 y 方向上的軸限制均為 0 和 1。許多繪圖函式會自動更新軸限制,但ax.text()不會(這會在不移動邊界的情況下啟用靠近邊界的注釋)。
這是一些示例代碼。
from matplotlib import pyplot as plt
import networkx as nx
fig, axs = plt.subplots(ncols=5, figsize=(14, 4), gridspec_kw={'width_ratios': [4, 1, 4, 1, 4]})
nx.draw_circular(nx.complete_graph(5), ax=axs[0])
axs[1].text(0.5, 0.5, '<', size=50, ha='center', va='center')
axs[1].axis('off')
nx.draw_circular(nx.complete_graph(7), ax=axs[2])
axs[3].text(0.5, 0.5, '<', size=50, ha='center', va='center')
axs[3].axis('off')
nx.draw_circular(nx.complete_graph(9), ax=axs[4])
plt.show()

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/367153.html
標籤:Python matplotlib 乳胶 网络x
