2016-09-23 166 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")