質問: {"a":(0,0), "b":(0,1), "c":(1,0)} nx.draw_networkx(G, pos, label="a") plt.grid() plt.show() ``` ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/6aba4d7660063c9ab4891098b5e54eeb.png) 上記グラフの上のような軸ラベルを表示したいのですが、 うまく追加できません。 ### 試したこと ・グラフに軸ラベルを用意して作図(上記コード) ・ax2.set_xticks([0,1,2,3])でラベルを追加 共にうまくいきませんでした。 グラフ上にgridは表示できるので軸ラベルも同様に表示出来ると思っているのですが方法が分かりません。 networkx側の機能で追加できるかもと思い公式ドキュメントを読んでいるところですが、 もしご存じの方がおりましたら教えて頂きたいです。 稚拙な質問文で申し訳ございません。 どうぞよろしくお願い致します。
回答: draw_networkx() で xy 軸の目盛りを消すという処理が行われているので、そのあとに `ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True)` で復活させてあげればよいです。 matplotlib.axes.Axes.tick_params — Matplotlib 3.1.2 documentation > > bottom, top, left, right : bool > > Whether to draw the respective ticks. > > > labelbottom, labeltop, labelleft, labelright : bool > > Whether to draw the respective tick labels. > > > ``` import networkx as nx import matplotlib.pyplot as plt # 作図したいグラフ G = nx.Graph() G.add_node("a") G.add_node("b") G.add_node("c") # 作図の際にグラフの座標を指定 pos = {"a": (0, 0), "b": (0, 1), "c": (1, 0)} # 作図 fig = plt.figure(facecolor="w") ax = fig.add_subplot( 111, xlim=(-1, 2), ylim=(-1, 2), xticks=0, 1, 2, 3], xticklabels=["0", "1", "2", "3"] ) pos = {"a": (0, 0), "b": (0, 1), "c": (1, 0)} nx.draw_networkx(G, pos, label="a", ax=ax) ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True) ax.grid() plt.show() ``` ![イメージ説明