我在解決這個問題時遇到了一些問題,我有一個數據框,我需要從中創建一個圖形。用相關矩陣創建圖形
我的數據幀的樣子:
A =pd.DataFrame([(1, 0.3, 0.4, 0.7),
(0.3, 1, 0.9, 0.2),
(0.4, 0.9, 1, 0.1),
(0.7, 0.2, 0.1, 1)
], columns=['a', 'b', 'c', 'd'], index=['a', 'b', 'c', 'd'])
np.fill_diagonal(A.values, 0)
>>> A
a b c d
a 0.0 0.3 0.4 0.7
b 0.3 0.0 0.9 0.2
c 0.4 0.9 0.0 0.1
d 0.7 0.2 0.1 0.0
我想創建與此數據的圖表。有四個節點:a,b,c,d,節點之間的距離由矩陣給出,例如節點a-b = 0.3之間的距離(因爲它是一個相互重疊的矩陣值)。
謝謝!
我創造了這個功能,邊緣的值存儲爲一個字典(我不知道這是否會是最好的想法):
def edges(matr):
edge = {}
for m in matr.columns:
for n in matr.index:
a,b = m,n
if a!= b:
x = matr.at[m, n]
edge[m,n] = float("{0:.4f}".format(x))
return edge
edges(A)
>>> edges(A)
{('a', 'b'): 0.3,
('a', 'c'): 0.4,
('a', 'd'): 0.7,
('b', 'a'): 0.3,
('b', 'c'): 0.9,
('b', 'd'): 0.2,
('c', 'a'): 0.4,
('c', 'b'): 0.9,
('c', 'd'): 0.1,
('d', 'a'): 0.7,
('d', 'b'): 0.2,
('d', 'c'): 0.1}
但由於AB是一樣的BA一些邊緣重複,我不知道如何刪除重複的值。 從這些數據我需要創建一個圖形/圖片。
謝謝!
可能愚蠢的問題,n但什麼樣的圖形?一個特定的數據結構?照片? – doctorlove
邊緣和距離的列表,並創建一個圖形/圖片。謝謝! – Mee