2015-02-09 55 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)