2016-02-24 93 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