2017-09-28 40 views
0

我有一堆由子圖組成的Nx1圖(大多數是7x1,但有些是5x1等)。這個想法是,有3個區域和7個不同時間長度的定時事件,我希望按時間順序查看每個定時事件,並以分鐘花費在一個區域中的時間爲單位。我希望每個子圖都有適當的y軸標籤刻度(分鐘)以及標籤(本例中爲P1到P7,但有些是P1到P5等),但所有x軸都關閉,但最後一個是我自己的蜱,用文字。我從herehere拉。Matplotlib:關閉7x1子圖中的大多數座標軸,但保留底部(重命名)刻度

我遇到的問題是最底部的小圖不僅有我的文字('Zone 1','Zone 2'..),而且還有對我毫無意義的數字(從0到1的刻度) ,並且y軸有正確的子圖滴答(從0到10左右),但是從0到1的整體標記是無意義的。我想破壞無意義的總體x軸數字,以及總體上沒有意義的y軸數字。

如何從整體圖中刪除不需要的刻度數?

import matplotlib.pyplot as plt 
import numpy as np 

plotlist = [[0, 0, 690], [0, 0, 1030], [0, 0, 470], [30, 10, 730], [0, 0, 460], [20, 0, 540], [0, 0, 380]] 
numpresses = 7 

fig = plt.figure() 

objects = ('Zone 1', 'Zone 2', 'Zone 3') 
y_pos = np.arange(len(objects)) 
plt.title('Time spent in zones (minutes)') 
plt.ylabel('Minutes spent in zone') 

for subploti in range(numpresses): 
    ax = fig.add_subplot(numpresses, 1, (subploti + 1)) 
    axes = plt.gca() 
    axes.get_xaxis().set_visible(False) 
    axes.set_ylabel('P %i' %(subploti + 1)) 

    mins = [x/60. for x in plotlist[subploti]] 
    plt.bar(y_pos, mins, align='center', alpha=0.5) 

plt.xticks(y_pos, objects) 
axes = plt.gca() 
axes.get_xaxis().set_visible(True) 



plt.show() 

Plot with extraneous ticks

+0

不,它是不一樣的 - 它仍然在所示的照片中的所有子圖上都有x軸標籤。 – Manner

回答

0

好了,原來使用共享軸和提前製作副區的數量和索引他們將溶液。需要看起來更難herehere。如果其他人發現這個新代碼是

import matplotlib.pyplot as plt 
import numpy as np 

plotlist = [[0, 0, 690], [0, 0, 1030], [0, 0, 470], [30, 10, 730], [0, 0, 460], [20, 0, 540], [0, 0, 380]] 
numpresses = 7 

fig, axtuple = plt.subplots(numpresses, sharex=True, sharey=True) #, squeeze=True) 

objects = ('Zone 1', 'Zone 2', 'Zone 3') 
y_pos = np.arange(len(objects)) 
plt.ylabel('Minutes spent in zone') 
plt.xlabel('Distances (feet)') 
axtuple[0].set_title('Time spent in zones (minutes)') 

for subploti in range(numpresses): 
    mins = [x/60. for x in plotlist[subploti]] 
    axtuple[subploti].bar(y_pos, mins, align='center', alpha=0.5) 
    axtuple[subploti].set_ylabel('P %i' %(subploti + 1)) 

plt.xticks(y_pos, objects) 
plt.show() 
相關問題