2011-08-18 26 views
2

使用pylab情节只是一个没有边界的数据,我想绘制只是无轴或边框为PNG文件中的数据。在下面的代码中,我仍然会在数据的左侧和右侧获得边框。我如何使用pylab

import pylab 
scores = [[ 82.,78., 71.5, 76., 79.5, 77., 73.5, 70.5, 74., 74.5 ], 
[ 79. , 75.75, 71., 76., 78.25, 73.25, 72.25 ,73.25, 74.75, 73.5 ], 
[ 77., 75., 70.5, 73. , 77., 73.5, 71.75, 75.25, 76.75, 74. ], 
[ 76., 74.75, 72.5, 72.25 ,75.25, 76.5, 73.5, 73., 75.25, 75.75], 
[ 75., 72.5, 72.25, 74.5, 73.25, 73.25, 74.5, 73.25, 73.5, 76.5 ], 
[ 74.5, 72., 69.5, 73.25, 73.75, 72., 76.75, 77., 74.25, 76.5 ], 
[ 72.5, 73.75, 72.75, 75.75, 78., 76.75, 77.75, 78.75, 77.25, 74. ], 
[ 74.5, 74.25, 74.75, 78.75, 80.75, 79.25, 74.5, 75., 76.25, 73. ], 
[ 75.5, 71.5, 71.75, 78.75, 80.25, 77.5, 75., 73.25, 72.25, 72.75], 
[ 77.5, 74.5, 72., 77.75, 78.25, 74., 76.75, 75.75, 74.25, 73. ]] 

fig = pylab.figure() 
ax = fig.add_subplot(111) 
ax.xaxis.set_ticklabels([None]) 
ax.yaxis.set_ticklabels([None]) 
ax.xaxis.set_ticks([None]) 
ax.yaxis.set_ticks([None]) 
ax.imshow(scores,vmin=0, vmax=100, origin='lower') 
pylab.savefig('output.png',bbox_inches='tight', pad_inches=0) 
+1

我想通了。需要做两件事。首先,需要删除刻度线标记和刻度线,并在绘制图形时,将边界框设置为零。我将编辑我的代码片段。 – user94639

回答

3
import pylab 
scores = [[ 82.,78., 71.5, 76., 79.5, 77., 73.5, 70.5, 74., 74.5 ], 
[ 79. , 75.75, 71., 76., 78.25, 73.25, 72.25 ,73.25, 74.75, 73.5 ], 
[ 77., 75., 70.5, 73. , 77., 73.5, 71.75, 75.25, 76.75, 74. ], 
[ 76., 74.75, 72.5, 72.25 ,75.25, 76.5, 73.5, 73., 75.25, 75.75], 
[ 75., 72.5, 72.25, 74.5, 73.25, 73.25, 74.5, 73.25, 73.5, 76.5 ], 
[ 74.5, 72., 69.5, 73.25, 73.75, 72., 76.75, 77., 74.25, 76.5 ], 
[ 72.5, 73.75, 72.75, 75.75, 78., 76.75, 77.75, 78.75, 77.25, 74. ], 
[ 74.5, 74.25, 74.75, 78.75, 80.75, 79.25, 74.5, 75., 76.25, 73. ], 
[ 75.5, 71.5, 71.75, 78.75, 80.25, 77.5, 75., 73.25, 72.25, 72.75], 
[ 77.5, 74.5, 72., 77.75, 78.25, 74., 76.75, 75.75, 74.25, 73. ]] 

fig = pylab.figure(frameon=False) 
ax_size = [0,0,1,1] 
fig.add_axes(ax_size) 
pylab.imshow(scores,vmin=0, vmax=100, origin='lower') 
pylab.axis('off') 
## As you noted. 
pylab.savefig('output.png',bbox_inches='tight', pad_inches=0) 

这应该这样做。没有为我显示任何轴。我所做的只是添加frameon =假

+0

这只是使边框透明;该图像仍包含边框。 – user94639

+2

我发现这个:pylab.savefig('output.png',bbox_inches ='tight',pad_inches = 0)摆脱了大部分边界,只留下了左侧和底部的三个像素边缘。 – user94639

+0

是的,bbox_inches ='紧'这应该肯定会摆脱额外的区域。做得好。 – Jim