2016-04-25 38 views
0

我想在matplotlib中放置subplots,這樣我就不知道有多少個圖(可變數量的圖)。在橫向網格中放置圖(蟒蛇挑戰)

網格尺寸是R * C,因此R < = C,並且網格從左到右和從上到下填充。

的挑戰是,我想使返回的位置的元組(R,C),用於在圖表數量n

的需要的功能的示例圖所示,其中基團代表N(A功能R,C),即數目n應該輸出元組(R,C)

sample 
0(0, 0) 1(0, 1) 4(0, 2) 9(0, 3) 16(0, 4) 
2(1, 0) 3(1, 1) 5(1, 2) 10(1, 3) 17(1, 4) 
6(2, 0) 7(2, 1) 8(2, 2) 11(2, 3) 18(2, 4) 
12(3, 0) 13(3, 1) 14(3, 2) 15(3, 3) 19(3, 4) 
20(4, 0) 21(4, 1) 22(4, 2) 23(4, 3) 24(4, 4) 
+0

限制爲24,這可以通過放置如下字典來解決:'{0:(0,0),1:(0,1),4:(0,2),9:(0,3),16 :(1,0,4),2:(1,0),3:(1,1),5:(1,2),10:(1,3),17:(1,4),6:( 2:0),7:(2,1),8:(2,2),11:(2,3),18:(2,4), 12:(3,0),13:(3 ,1),14:(3,2),15:(3,3),19:(3,4),20:(4,0),21:(4,1),22:(4,2 ),23:(4,3),24:(4,4)}' 但我想泛化這個函數,如果可能的話。 –

回答

1
x = 0 
y = 0 
print (x,y) 
for i in range(1,5): 
    y = i 
    print [(x,y) for x in range(i)] 
    x = i 
    print [(x,y) for y in range(i+1)] 

要添加的數字:

tuples=[] 

x = 0 
y = 0 
n = 0 
tuples.append((n,(x,y))) 
for i in range(1,5): 
    y = i 
    for x in range(i): 
     n+=1 
     tuples.append((n,(x,y))) 
    x = i 
    for y in range(i+1): 
     n+=1 
     tuples.append((n,(x,y))) 

print tuples 
+0

Good job @ Peter9192。 謝謝,我希望我能投票,但是我的聲望還是很低。 –