所以我有一些數據計算,現在應該可視化。對於每個數據元素,我想放置一個單獨的子圖,以便整個圖形儘可能緊湊。下面是五個元素的例子:計算子圖調整
這是我想出了一個任意元素的原型數:
import matplotlib.pyplot as plt
import numpy as np
import math
data = ... # some list of pairs of numpy arrays, for x and y axes
size = len(data)
cols = math.floor(math.sqrt(size))
rows = math.ceil(size/cols)
f, diags = plt.subplots(rows, cols)
for (row, col), diag in np.ndenumerate(diags):
dataIdx = row * cols + col
if dataIdx < size:
x = data[dataIdx][0]
y = data[dataIdx][1]
diag.scatter(x, y)
diag.set_title('Regressor {}'.format(dataIdx + 1))
else: # discard empty subplots
f.delaxes(diag)
f.show()
的簡短說明:緊湊,我試圖調整如果可能,以方矩陣的形式繪製。如果沒有,我爲剩下的圖表添加另一行。然後我迭代圖表,計算數據元素的相應位置並繪製其值。如果沒有找到該圖的數據元素,則表示該圖是最後一行的剩餘部分,可以丟棄。
但是,這是我可能用C++或Java編寫的代碼,問題是,pythonic的方式是什麼?
另外,當迭代數據而不是圖時,最好的解決方案是什麼?我當然可以從元素索引中計算圖的行/列,就像我在初始行/列計算中一樣,但也許有更好的方法來做到這一點...
在此先感謝!
什麼是二次矩陣? – AGS 2015-03-30 20:12:09
Ehm,一個矩形矩陣,我以某種方式設法命名二次... – hoefling 2015-03-30 20:14:06