Updating plot attribute (ComputeGraph) from map!

BambOoxX
Tue, 24 Feb 2026 17:34:30 +0000
General Usage

I have a custom Makie recipe that has plenty of arguments. One of these arguments is a performance setting that allows to deactivate some features when the data to plot becomes too big, such as text calls, which lead to latency.
This setting can be set manually, but I was wondering how to update it properly in a ComputeGraph, based on other arguments of the graph. I tried something along the lines of

map!(plt.attributes, [:data1,:data2] do data1, data2
    if length(data1) > 1000
        update!(plt.attributes, performance=true) # Fails with  ERROR: Attribute performance not found in ComputeGraph
    end
end

but that failed. Is there a supported and recommended way to do this ?

Note however that I use this property afterwards as e.g.

if !performance[]
    text!(data1, string.(data1))
end

Which is probably in itself somewhat ill-advised, as it is not updated by subsequent modifications to performance. Still this is the only way I know to fully deactivate some plots, as even plots with visible=false can lead to large slow-downs.

Any advice would be greatly appreciated;

1 post - 1 participant