Skip to content

Instantly share code, notes, and snippets.

View heatmap_graph_makie.jl
s = Scene(camera = campixel!)
nodes = Point2f[(100, 100), (200, 300), (100, 400), (500, 400)]
for i in 1:length(nodes)-1
for j in i+1:length(nodes)
linesegments!(s, nodes[[i, j]])
end
end
View text_in_legend_key.jl
f = Figure()
ax = Axis(f[1, 1])
sc = scatter!(randn(10, 2), label = "Points")
text!(randn(10, 2), text = ["hey" for _ in 1:10], color = :red)
leg = Legend(f[1, 2], [sc, []], ["Points", "Location of heys"])
legscene = leg.blockscene.children[1]
leg.grid[1, 1][2, 1] = Label(legscene, "hey", color = :red)
notify(leg.margin) # adjust to new legend size without relayout
f
View capture_and_indent.jl
function with_indent_message(f, message)
s = mktemp() do path, io
redirect_stdout(f, io)
flush(io)
str = read(path, String)
if match(r"^\s*$", str) === nothing
replace(str, r"^"m => "")
else
""
end
View density_poly_on_axis3_edge.jl
using Makie.KernelDensity
x = randn(1000)
k = kde(x, npoints = 200)
f = Figure()
ax = Axis3(f[1, 1], limits = (-4, 4, -4, 4, 0, 1))
p = poly!(ax, Point2f.(k.x, k.density),
model = Makie.Mat4f([ 1 0 0 0
0 0 1 4
View axis_zoom_lens.jl
f = Figure()
ax = Axis(f[1, 1])
ax2 = Axis(f[1, 1], width = Relative(0.3), height = Relative(0.3), valign = 0.8, halign = 0.8)
p = Point(1, 1)
scatter!(ax, p, markersize = 15)
limits!(ax, 0, 10, 0, 10)
points = lift(ax.scene.px_area, ax.scene.camera.projectionview, ax2.scene.px_area) do pxa, pv, pxa2
p1 = Makie.bottomright(pxa2) - pxa.origin
View mandelbrot.jl
using CairoMakie
using Makie.GeometryBasics
function mandelbrot(x, y)
z = c = x + y*im
for i in 1:50.0; abs(z) > 2 && return log(50 - i); z = z^2 + c; end; 0.0
end
# r = Rect(-0.74250066, 0.39089617, 0.43069285, 0.34233275)
r = HyperRectangle{2, Float32}(Float32[-0.62557947, 0.6001665], Float32[0.056850735, 0.041836016])
View glmakie_row_selection_heatmap.jl
using GLMakie
data = Observable(randn(30, 30))
lineindex = Observable(1)
linedata = @lift $data[:, $lineindex]
f, ax, hm = heatmap(data, axis = (; aspect = 1))
selectionrect = @lift Rect2f(0.5, $lineindex-0.5, size($data, 1), 1)
wireframe!(selectionrect, color = :white)
View transparent_glmakie_background.jl
C_1 = C_a * α_a + C_b1 * (1 - α_a)
C_2 = C_a * α_a + C_b2 * (1 - α_a)
C_1 - C_2 = (C_b1 - C_b2) * (1 - α_a)
1 - (C_1 - C_2) / (C_b1 - C_b2) = α_a
(C_1 - (C_b1 * (1 - α_a))) / α_a = C_a
##
@jkrumbiegel
jkrumbiegel / multiobservable.jl
Created May 23, 2022
Mockup of an observable with multiple entries
View multiobservable.jl
mutable struct Multiobservable
value::NamedTuple
listeners::Vector
end
Multiobservable(nt) = Multiobservable(nt, [])
function Makie.Observables.on(f, m::Multiobservable, syms::Symbol...)
push!(m.listeners, f)
f
View makie_3d_barplot.jl
@recipe(Barplot3D) do scene
Attributes(
color = theme(scene, :markercolor),
colormap = theme(scene, :colormap),
)
end
Makie.conversion_trait(::Type{<:Barplot3D}) = Makie.DiscreteSurface()
function Makie.plot!(p::Barplot3D)