2015-02-09 63 views
0

我試圖繪製從h5文件讀入的一些基本數據。對於上下文來說,它是使用各種閾值在圖像中檢測到的變化特徵的區域。 我可以繪製數據確定,但y軸使用科學記數法顯示值。我能夠克服這一點,但現在有一個抵消。我嘗試了很多東西,但都沒有成功。我不太熟悉matplotlib的格式化軸和操作細節。從matplotlib中刪除偏移量

我的代碼如下:

infile = 'myH5file.h5' 
f = h5py.File(file, 'r') 
dset = f['/DATA/DATA'] 
sum = [] 
threshold = ['1','2','3'] 

Th1 = dest[...,0] 
Th1 = numpy.sum(Th1) 
sum.append(Th1) 

Th2 = dest[...,0] 
Th2 = numpy.sum(Th2) 
sum.append(Th2) 

Th3 = dest[...,0] 
Th3 = numpy.sum(Th3) 
sum.append(Th3) 

x = threshold 
y = numpy.array(sum) 
ax = plt.gca() 
plt.scatter(x, y) 
plt.ticklabel_format(style='plain', axis='y') 
ax = plt.gca() 
ax.set_yticklabels(ax.get_yticks()) 
plt.show() 

這給了我下面的輸出: My plot output

正如你所看到的,是負偏移-50000000。

我想刪除此使得軸線從0開始

任何幫助是極大的讚賞!

+0

看起來你應該在這裏使用科學記數法。另外,使用'ax.set_yticklabels(ax.get_yticks())'是一個可怕的想法,而且有些危險。如果您在該通話後平移/縮放/更改極限,則刻度標籤將會出錯。 – tacaswell 2015-02-09 17:11:53

+0

請參閱http://stackoverflow.com/questions/14711655/how-to-prevent-numbers-being-changed-to-exponential-form-in-python-matplotlib-fi/14711866#14711866 – tacaswell 2015-02-09 17:12:10

+0

那必須留在從我正在做的其他事情。它不在我的最終代碼 – 2015-02-10 13:26:00

回答

1

您應該能夠使用ylimits來明確指定要顯示的範圍。

+0

一個簡單的修復。謝謝! – 2015-02-09 15:51:34

1

要設置y軸限制,您可以使用ax.set_ylim(lower_bound, upper_bound)