2016-02-05 92 views
2

簡單的問題:我需要隱藏這段代碼生成的圖中的y軸:隱藏y軸在該地塊

import matplotlib.pyplot as plt 
import seaborn 
seaborn.set(style="white") 
import random 

objects = [("Zachary's karate club", 78), 
      ("dolphins social network", 159), 
      ("C. elegans connectome", 2148), 
      ("US power grid", 6594), 
      ("PGP web of trust (2004)", 24316), 
      ("Linux kernel source file includes", 230213), 
      ("Enron emails (1999-2003)", 1148072), 
      ("Internet autonomous systems (2005)", 11095298), 
      ("CS collaborations (DBLP)", 18e6), 
      ("Wikipedia hyperlinks", 350e6), 
      ("Twitter follower graph (2012)", 20e9), 
      ("Facebook social graph (2011)", 68.7e9), 
      ("NSA social graph (?)", 1e11), 
      ("human connectome (neuronal)", 1e14) 
      ] 

fig, ax = plt.subplots(figsize=(16,6)) 

for i, (name, radius) in enumerate(objects): 
    sgn = 2 * (i % 2) - 1 
    ax.annotate(name, xy=(radius,0), xytext=(radius,sgn* (0.5 + random.randint(1,12) * 0.1)), ha='center', 
       arrowprops=dict(arrowstyle="->", connectionstyle="arc,angleA=0,armA=30,rad=30", facecolor='gray'), 
       color="Maroon") 
ax.set_xscale('log') 
ax.set_xlim(1.e1,1.e15) 
ax.set_ylim(0,4) 
ax.axes.get_yaxis().set_visible(False) 
ax.axhline(color='k', lw=1) 
ax.plot([obj[1] for obj in objects], [0]*len(objects), 'ob', markersize=2) 
ax.set_yticks([]) 
ax.tick_params(length=8) 
ax.set_xlabel('edges') 
seaborn.despine() 
plt.show() 

enter image description here

應該足夠簡單,但所有的我迄今發現的代碼示例沒有工作,例如fig.axes[0].get_yaxis().set_visible(False)

回答

5

左軸爲seaborn,不matplotlib。您可以通過關閉它:

seaborn.despine(left=True) 

針對波紋管tcaswell評論:

Seaborn增加了花鍵的情節。 despine命令接受以下參數以刪除它們。但是,您必須明確告訴它關閉左側或底部。

seaborn.despine(fig=None, ax=None, top=True, right=True, left=False, bottom=False, offset=None, trim=False) 

其中

top, right, left, bottom : boolean, optional 
If True, remove that spine. 
+1

Seaborn主要是對matplotlib頂部的包裝讓你的說法並不完全正確。 – tacaswell