2017-04-20 222 views
-1

我試圖幫助我的女朋友爲實驗製作動畫,其中基本上這組細胞移動穿過培養皿並且存在相機跟蹤他們隨着時間的推移個人職位收集的數據以時間間隔的形式以及當時該組中特定細胞的位置。在考慮5個重要的值時,每個元組的形式如(C,t,X,Y,Z),其中C =單元數,t =時間,X,Y和Z是位置。 excel數據表中有大約幾百個這樣的元組,對於約10個單元C = {1,2,3,...,10},超過40秒。使用(X,Y,Z)點和時間製作三維散點圖動畫

我看過excel和MATLAB程序中的宏,你可以在三維空間中繪製散點圖並能夠旋轉它和東西,但我想知道是什麼工作,讓這一步更遠,有某種形式動畫中散點圖上的點隨時間增加而移動。就像爲3D散點圖繪製動畫一樣,當一個時鐘運行到20秒時,這些點隨着其值的變化而移動。

有沒有人有經驗在編程語言或Excel中做這樣的事情(儘管我認爲這在VBA中會很討厭)。

回答

0

東西可能讓你在MATLAB打算:

% generate some data to visualize 
z = 0:pi/50:10*pi; 
x = sin(z); 
y = cos(z); 

% split by cells 
idx_C1 = 1:100; 
idx_C2 = 101:200; 

t_C1 = linspace(now-2,now-1,100); 
t_C2 = linspace(now-1,now,100); 

% plot as 3d scatter plot - distinguish cells by marker style 
figure 
p1 = scatter3(x(idx_C1),y(idx_C1),z(idx_C1),[],t_C1,'s','DisplayName','Cell 1'); 
hold on; 
p2 = scatter3(x(idx_C2),y(idx_C2),z(idx_C2),[],t_C2,'o','DisplayName','Cell 2'); 

% color code the time value 
hc = colorbar; 
hc.TickLabels = string(datetime(hc.Ticks,'ConvertFrom','datenum')); 

% show legend 
legend('show','Location','northwest'); 

請記住,可視化應該總是手頭的數據做,你將需要解決什麼是最適合你的問題。

我選擇按原樣使用x,y,z座標並對時間變量進行顏色編碼。我用不同的標記繪製不同的細胞。但是,這樣的5D圖傾向於混亂和混亂。我可能會去爲每個單元格創建一個圖形,而不是用標記區分它們。

0

這聽起來像你可能已經有代碼來繪製一個單一的3D時間點的數據(或者你覺得自己足夠舒服,以便自己找出那部分)。如果完成/可行,那麼另一種方法是使用Matlab GUI和一個控制繪製時間點的滑動條。預期的結果是一個交互式窗口,無論何時調整滑動條,都會更新繪圖,以便在由滑塊確定的時間顯示3D中的單元格位置。或者,如果您正在尋找一個非交互式視頻,該視頻簡單地顯示隨着時間的推移作爲演示(例如,作爲演示文稿的一部分的華麗視覺),有一些方法可將一系列情節轉變爲視頻。看看發佈到文件交換的this tool

相關問題