Hi, I am thinking how to quickly visualize 2D matrix, given with matrices X, Y of coordinates of corresponding data points in Z matrix. It will be used in real-time visualization of action potential propagation in cardiac tissue (X, Y will represent coordinates of irregularly placed cells).
Analogous MATLAB function would be  contour(X, Y, Z): specifies the  *x*  and  *y*  coordinates for the values in  Z.
Is it possible to do that in Makie.jl?
Or is it only possible by using Interpotations package and pre-constructing 2D interpolated matrix? (I am considering real-time visualisation performance)
             
            
              
              
              
            
            
           
          
            
            
              Can you show a running mock up example in julia? I’m not 100% sure how you want your data to look! If you do that, I can help you better to figure out the right Makie command!
             
            
              
              
              1 Like
            
            
           
          
            
            
              In my simulation cardiac tissue is modeled using brick-wall architecture: rectangles represent cells, bold lines are  junctions between cells (by which wave of excitation propagates):

I want each cell to be colored by its voltage.
Also I did test simulation using simpler, columnar (cells are arranged in a grid) architecture of cells network, that can be represented using heatmap:
Previously, I did quite similar visualization of neural network in MATLAB, but using 
columnar architecture and contour: 
http://jgp.rupress.org/content/suppl/2016/02/11/jgp.201511488.DC1/JGP_201511488_V1.mp4
I am experimenting with contour and heatmap, which could give better performance for real-time and good representation of the process for publishing. Also I am thinking how to visualize 
brick-wall architecture, maybe using mesh or poly?
            
 
            
              
              
              1 Like
            
            
           
          
            
            
              Cool graphics!
Using mesh should be pretty straight forward, just have a look at e.g. : http://juliaplots.org/MakieReferenceImages/gallery//fem_mesh_2d/index.html
             
            
              
              
              
            
            
           
          
            
            
              Thanks, I coded simple triangles mesh, it does show up. But when I try to animate it doesn’t update.
Here is the code:
using Makie
function run2()
    s = Scene()
    sizeX = 10
    sizeY = 10
    points = zeros(sizeY * sizeX, 2)
    color = zeros(sizeY * sizeX)
    conn = zeros(Int64, (sizeY - 1) * (sizeX - 1), 3)
    conn2 = zeros(Int64, (sizeY - 1) * (sizeX - 1), 3)
    for y = 1:sizeY
        for x = 1:sizeX
            points[(y-1)*sizeX+x, 1] = x
            points[(y-1)*sizeX+x, 2] = y
            color[(y-1)*sizeX+x] = rand()
        end
    end
    for y = 1:sizeY-1
        for x = 1:sizeX-1
            # @infiltrate (y-1)*(sizeX-1)+x > 80
            conn[(y-1)*(sizeX-1)+x, 1] = Int((y - 1) * (sizeX) + x)
            conn[(y-1)*(sizeX-1)+x, 2] = Int((y - 1) * (sizeX) + x + 1)
            conn[(y-1)*(sizeX-1)+x, 3] = Int((y + 1 - 1) * (sizeX) + x)
            conn2[(y-1)*(sizeX-1)+x, 1] = Int((y + 1 - 1) * (sizeX) + x)
            conn2[(y-1)*(sizeX-1)+x, 2] = Int((y + 1- 1) * (sizeX) + x + 1)
            conn2[(y-1)*(sizeX-1)+x, 3] = Int((y - 1) * (sizeX) + x + 1)
        end
    end
    s = scatter!(points)
    mesh!(s, points, [conn; conn2], color = color, shading = false)
    # wireframe!(s[end][1], color = (:black, 0.6), linewidth = 3)
    for i = 1:100
        s[end][:color] = rand(100);
        update!(s)
        update_limits!(s)
        sleep(1/24)
    end
end
run2()
Other code using similar for loop is updating if I use heatmap. Also command s[end][:color] = rand(100); is updating mesh from REPL.
             
            
              
              
              1 Like
            
            
           
          
            
            
              For me it does update… Do you mean it doesn’t display?
Because you’re missing a display(s) before the animation loop!
             
            
              
              
              
            
            
           
          
            
            
              Really! It worked now. Thanks.