2016-02-24 69 views
3

我有我的形象 enter image description here如何使用MATPLOTLIB设置标签?

然后我尝试这种

#!/usr/bin/python 
import os,sys 
import Image 
import matplotlib.pyplot as plt 

jpgfile = Image.open("t002.jpg") 
fig = plt.imshow(jpgfile) 
ax = fig.add_subplot(111) 
ax.set_xlabel('normlized resistivities') 
ay.set_ylabel('normlized velocities') 
fig.savefig("fig.jpg") 

但后来我有

AttributeError: 'AxesImage' object has no attribute 'add_subplot' 

如何设置xlabel和ylabel,然后新的图像保存为一个文件?

回答

2

它应该是不够的,只是做

plt.figure() 
plt.imshow(jpgfile) 
plt.xlabel('normlized resistivities') 
plt.ylabel('normlized velocities') 
plt.savefig('out.jpg') 

您当前的错误是因为imshow不返回Figure

+0

Ovren是的,工作正常! –

0

我想最好的办法就是实际绘制图像,并只显示轴标签(隐藏轴和蜱)

This reply可能去

0

你可以只使用plt.xlabel方式(“xlabel”)

+0

但是,我如何绑定这个fig.plt.xlabel('normlized resistivities'),但得到了AttributeError(名称)AttributeError:plt –

0

汉纳斯的回答能正常工作,但有时你需要的ax对象,所以我倾向于做这样的事情:

import os,sys 
import Image 
import matplotlib.pyplot as plt 

jpgfile = Image.open("t002.jpg") 

# Set up the figure and axes. 
fig = plt.figure(figsize=(12,8)) # ...or whatever size you want. 
ax = fig.add_subplot(111) 

# Draw things. 
plt.imshow(jpgfile) 
ax.set_xlabel('normalized resistivities') 
ax.set_ylabel('normalized velocities') 

# Save and show. 
plt.savefig("fig.jpg") 
plt.show() 

顺便说一句,我建议saving as PNG包含文本和其他元素与精致的数字详情。 setting a high dpi为保存的数字。

+0

@ 工程完美,但如何摆脱0,100,200,300滴答我根本不需要它们? –

+0

@ kwinkunks 完美的作品,但如何摆脱0,100,200滴答? –

+0

有很多方法可以完成mpl中的大部分工作! 'ax.set_axis_off()'将关闭整个边界,例如,或者'ax.set_xticks([]); ax.set_yticks([])'只会删除滴答。您也可以使用['plt.tick_params'](http://stackoverflow.com/a/12998531/3381305)。 – kwinkunks