2016-09-23 16 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() 

ご覧のとおり、このコードからリンクが得られます。なぜこのヒストグラムはこういうの?図面2D配列のヒストグラム

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")