2016-09-23 249 views
0
import matplotlib.pyplot as plt 
import numpy as np 
import xlrd 
import xlwt 

wb = xlrd.open_workbook('Scatter plot.xlsx') 
sh1 = wb.sheet_by_name('T180') 
sh2=wb.sheet_by_name("T181") 
sh3=wb.sheet_by_name("Sheet1") 

x= np.array([sh1.col_values(7, start_rowx=50, end_rowx=315)]) 
x1= np.array([sh2.col_values(1, start_rowx=48, end_rowx=299)]) 

y=np.array([sh1.col_values(2, start_rowx=50, end_rowx=299)]) 
y1= np.array([sh2.col_values(2, start_rowx=48, end_rowx=299)]) 

print x 

plt.hist(x,bins=50) 
plt.xlabel("dx (micron)") 
plt.ylabel("dy (micron)") 
plt.show() 

正如你可以看到从链接图是由此代码获得。为什么这个直方图是这样的?绘制直方图与二维数组

enter image description here

我怎样才能解决呢?在此先感谢您的帮助。

+0

你用这个数字不喜欢什么?它对我来说看起来不错,数组中只有很少的值。 – dnalow

+0

谢谢。但为什么它不是这样(链接)?数据编号相同(约300)http://www.filedropper.com/figure2 @dnalow –

+0

你可以显示数据吗? – HYRY

回答

1

x形状(1, 265),这是一个2维数组,你需要先将其转换为1维数组:

plt.hist(x.ravel(), bins=50) 
0

是的,它是根据由HYRY建议工作的很好。感谢@ HYRY。

plt.hist(x.ravel(),bins=100,histtype="step",label="Before Translation")