2014-09-11 349 views
1

我有一個數據集,我想繪製每個深度處測量次數的直方圖。我想繪製深度欄中每個測量頻率的直方圖。我希望將數據從0米開始分成5米長,高達155米。這段代碼給了我一個直方圖,它看起來是一個合理的形狀,但是這些值看起來是錯誤的,我不能完全從零開始。另外,我希望能夠交換x軸和y軸,深度位於y軸上,頻率位於x軸上。如何在直方圖上設置軸並交換x和y軸?

import numpy as np 
    import datetime as dt 
    import matplotlib.pyplot as plt 
    import glob 


    #The data is read in, and then formatted so that an array Dout (based on depth) is created. This is done since multiple files will be read into the code, and so I can create the histogram for all the files I have up until this point. 

    Dout = np.array(depthout) 


    bins = np.linspace(0, 130, num=13) #, endpoint=True, retstep=False) 


    plt.hist(Dout, bins) 
    plt.xlabel('Depth/m') 
    plt.ylabel('Frequency') 
    plt.show() 


    # the end 

數據的格式如下:

TagID ProfileNo ProfileDirn  DateTime Lat  Lon  Depth Temperature 
+2

我預期的代碼完全不同的塊時,我對這個問題點擊後,我看了標題。也許你可以在沒有所有數據管理的情況下發佈一個簡單的例子,這更符合標題。對於水平barplot,請檢查matplotlib庫中的barh_demo:http://matplotlib.org/gallery.html – Nras 2014-09-11 10:46:03

+0

這聽起來像是一個完美的熊貓包裝工作。使用pd.read_clipboard()獲取數據框中的代碼。然後df.Temperature.hist()給你一個計時器。有很多切片選項可以用很少的代碼來完成你想要做的事情。 – Joop 2014-09-11 10:58:16

+0

可以使用多個文件嗎?對不起,我從來沒有用過熊貓。 – TDJ92 2014-09-11 11:10:53

回答

3

您希望orientation kwarg的histDocs)。

import matplotlib.pyplot as plt 
import numpy as np 

fig, ax = plt.subplots() 

data = np.random.randn(1500) 
bins = np.linspace(-5, 5, 25, endpoint=True) 

ax.hist(data, bins, orientation='horizontal') 
ax.set_ylim([-5, 5]) 
plt.show() 

enter image description here

+0

這工作完美。謝謝! – TDJ92 2014-09-16 08:03:24