为了去掉图中的框架,我写了

frameon=False

与pyplot完美结合。图,但与matplotlib。图只移除了灰色背景,帧保持不变。此外,我只想显示线条,其余的图形都是透明的。

用pyplot我可以做我想做的事情,我想用matplotlib做一些很长的原因,我宁愿不提扩展我的问题。


当前回答

我过去常常这样做:

from pylab import *
axes(frameon = 0)
...
show()

其他回答

plt.axis('off')
plt.savefig(file_path, bbox_inches="tight", pad_inches = 0)

plt。Savefig本身有这些选项,只需要在之前设置轴

正如我在这里回答的,你可以通过样式设置(样式表或rcParams)从所有的图中删除棘线:

import matplotlib as mpl

mpl.rcParams['axes.spines.left'] = False
mpl.rcParams['axes.spines.right'] = False
mpl.rcParams['axes.spines.top'] = False
mpl.rcParams['axes.spines.bottom'] = False

在新版本的matplotlib中,摆脱丑陋帧的最简单方法是:

import matplotlib.pyplot as plt
plt.box(False)

如果你真的必须总是使用面向对象的方法,那么执行:ax.set_frame_on(False)。

df = pd.DataFrame({
'client_scripting_ms' : client_scripting_ms,
 'apimlayer' : apimlayer, 'server' : server
}, index = index)

ax = df.plot(kind = 'barh', 
     stacked = True,
     title = "Chart",
     width = 0.20, 
     align='center', 
     figsize=(7,5))

plt.legend(loc='upper right', frameon=True)

ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)

ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('right')

axis('off'),将如Joe Kington指出的那样,删除除标绘线之外的所有内容。

对于那些只想删除框架(边框),并保留标签,标记等,可以通过访问轴上的spines对象来实现。给定一个轴对象ax,下面的代码应该删除所有四个边的边界:

ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)

并且,如果从图中移除x和y刻度:

 ax.get_xaxis().set_ticks([])
 ax.get_yaxis().set_ticks([])