简体   繁体   English

在此图中隐藏y轴

[英]Hiding the y-axis in this plot

Simple question: I need to hide the y-axis from the plot generated by this code: 简单问题:我需要隐藏此代码生成的图中的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()

在此输入图像描述

Should be simple enough, but all the code examples I've found so far have not worked, eg fig.axes[0].get_yaxis().set_visible(False) 应该很简单,但到目前为止我找到的所有代码示例都没有用,例如fig.axes[0].get_yaxis().set_visible(False)

The left axis is from seaborn , not matplotlib. 左轴来自seaborn ,而不是matplotlib。 You can turn it off using: 您可以使用以下命令将其关闭:

seaborn.despine(left=True)

In response to tcaswell comment bellow: 响应tcaswell评论:

Seaborn adds splines to the plot. Seaborn为情节增加了样条。 The despine command accepts the following args to remove them. despine命令接受以下args删除它们。 However, you have to explicitly tell it to turn off the left or bottom. 但是,您必须明确告诉它关闭左侧或底部。

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

wherein 其中,

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

This is a bit of a hack, but appears to get the result you want. 这有点像黑客,但似乎得到你想要的结果。

ax.set_frame_on(False) #Remove both axes
ax.axhline(0,color='black') #Put the x axis back

Pulled from two websites: 来自两个网站:

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM