From 67e13786a97c5b26c83a85b7359bc238e0a4506e Mon Sep 17 00:00:00 2001
From: Daniel Vedder <daniel.vedder@idiv.de>
Date: Tue, 17 Oct 2023 18:16:31 +0200
Subject: [PATCH] Fixed axis in population plot
---
Manifest.toml | 2 +-
Project.toml | 3 +--
src/Persefone.jl | 4 +---
src/analysis/makieplots.jl | 18 +++++++++++++++---
4 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/Manifest.toml b/Manifest.toml
index 878b002..c5743e1 100644
--- a/Manifest.toml
+++ b/Manifest.toml
@@ -2,7 +2,7 @@
julia_version = "1.9.3"
manifest_format = "2.0"
-project_hash = "ba06f527c3b60c5d5c4950e08943bcf1017cc1e3"
+project_hash = "39bcf21dcc00c4278393aecb66179a3c482a05e5"
[[deps.AbstractFFTs]]
deps = ["LinearAlgebra"]
diff --git a/Project.toml b/Project.toml
index ff8ac78..3bf9f92 100644
--- a/Project.toml
+++ b/Project.toml
@@ -1,7 +1,7 @@
name = "Persefone"
uuid = "039acd1d-2a07-4b33-b082-83a1ff0fd136"
authors = ["Daniel Vedder <daniel.vedder@idiv.de>"]
-version = "0.3.0"
+version = "0.3.1"
[deps]
Agents = "46ada45e-f475-11e8-01d0-f70cc89e6671"
@@ -18,7 +18,6 @@ ImageMagick = "6218d12a-5da1-5696-b52f-db25d2ecc6d1"
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
LoggingExtras = "e6f89c97-d47a-5376-807f-9c37f3926c36"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
-PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3"
diff --git a/src/Persefone.jl b/src/Persefone.jl
index 69ee02a..da3f1cd 100644
--- a/src/Persefone.jl
+++ b/src/Persefone.jl
@@ -27,7 +27,6 @@ using
GeoArrays, #XXX this is a big dependency - can we get rid of it?
Logging,
LoggingExtras,
- #PrecompileTools, #TODO
Random,
Serialization,
StableRNGs,
@@ -115,8 +114,7 @@ include("nature/species/wyvern.jl")
include("core/simulation.jl") #this must be last
-#XXX precompile?
+#XXX precompile? -> PrecompileTools doesn't really give an improvement
# https://julialang.org/blog/2021/01/precompile_tutorial/
-# https://julialang.github.io/PrecompileTools.jl/stable/
end
diff --git a/src/analysis/makieplots.jl b/src/analysis/makieplots.jl
index b914468..3967eeb 100644
--- a/src/analysis/makieplots.jl
+++ b/src/analysis/makieplots.jl
@@ -43,15 +43,27 @@ Returns a Makie figure object.
"""
function populationtrends(model::AgentBasedModel)
pops = model.datatables["populations"]
+ # create the labels needed for the ticks on the X axis
dates = @param(core.startdate):@param(core.enddate)
+ ticks = (Int[], String[])
+ for i in 1:length(dates)
+ if Day(dates[i]) == Day(1)
+ push!(ticks[1], i)
+ push!(ticks[2], Dates.format(dates[i], "u yy"))
+ end
+ end
+ while length(ticks[1]) > 12
+ deleteat!(ticks[1], 2:2:length(ticks[1]))
+ deleteat!(ticks[2], 2:2:length(ticks[2]))
+ end
+
f = Figure()
ax = Axis(f[1,1], xlabel="Date", ylabel="Population size",
- xtickformat = timeseries -> [Dates.format(dates[Int(d+1)], "dd/mm/yyyy")
- for d in timeseries])
+ limits=((1, length(dates)), nothing), xticks = ticks)
for s in unique(pops.Species)
points = @select!(@subset(pops, :Species .== s), :Abundance)
lines!(f[1,1], Vector{Float32}(points.Abundance), linewidth=3, label=s)
end
- axislegend("Species"; position=:lt)
+ size(pops)[1] > 0 && axislegend("Species"; position=:lt)
f
end
--
GitLab