ForestPlot.jl
A simple package to draw forest plots for meta-analysis study
Install / Use
/learn @PharmCat/ForestPlot.jlREADME
ForestPlot

A simple package to draw forest plots for meta-analysis study.
Install
Pkg.add(url="https://github.com/PharmCat/ForestPlot.jl.git")
Docs
forestplot(ci; sourcelabel = "Source:", metriclabel = "OR", cilabel = "CI95%",
source = nothing, metric = nothing, printci = false,
summary = nothing, logscale = true, kwargs...)
By default plot is logscaled.
ci- vector (iterable) of confidence intervals bounds;source- vector of study names (String);metric- vector of metric estimates;printci- print confidence interval;summary- print summary object (Dict);logscale- if true CI will be transformed (expfunction used);cimsz- CI marker size,-1or any value < 0 - auto;cimszwts- CI marker size weights (ifnothing-metricwill be used);size- size of plot;- metriclabel = "OR" - label for metrics values;
- cilabel = "CI95%"- label for intervals values
- ps = 10 - font size in points;
Example
using ForestPlot
forestplot([[0.2,1.2], [0.8,1.4], [0.6, 0.8], [1.2, 1.6]],
sourcelabel = "Study:", metriclabel = "Estimate",
metric = [1.0, 1.2, 0.7, 1.3],
source = ["12345678901234567890", "B", "C", "D"])
Summary object
Summary is a Dict() with keywords:
- :ci
- :est
- :vline (true/false or vlues for vertical lines)
- :markershape
- :markersize
Example 1
forestplot([[0.2,1.2], [0.8,1.4], [0.6, 0.8], [1.2, 1.6]],
metric = [1.0, 1.2, 0.7, 1.3], source = ["A", "B", "C", "D"],
summary = Dict(:ci =>[0.8, 1.1], :est => 0.95, :markershape => :rtriangle), logscale = false)
Example 2
ForestPlot.forestplot([[0.2,1.2], [0.8,1.4], [0.6, 0.8], [1.2, 1.6], [0.3, 0.7], [1.2, 1.5], [1.2, 1.3]],
metric = [1.0, 1.2, 0.7, 1.3, 0.5, 1.2, 1.3], source = ["A", "B", "C", "D", "E", "F", "G"],
sourcelabel = "Study:", metriclabel = "Estimate",
summary= Dict(:ci => [0.75,1.15], :est => 0.9),
logscale = true, printci = true, title = ["" "Title"], size = (800, 400))
<img src="https://github.com/PharmCat/ForestPlot.jl/blob/ee01ff72f999c3e54aa0448adec28b68e759cfd8/img/plot1.png" width="50%" height="50%">
Example 3 (no source)
ForestPlot.forestplot([[0.2,1.2], [0.8,1.4], [0.6, 0.8], [1.2, 1.6], [0.3, 0.7], [1.2, 1.5], [1.2, 1.3]],
metric = [1.0, 1.2, 0.7, 1.3, 0.5, 1.2, 1.3],
sourcelabel = "Study:", metriclabel = "Estimate",
summary= Dict(:ci => [0.75,1.15], :est => 0.9),
logscale = true,title = "Title")
<img src="https://github.com/PharmCat/ForestPlot.jl/blob/ee01ff72f999c3e54aa0448adec28b68e759cfd8/img/plot2.png" width="50%" height="50%">Related Skills
node-connect
345.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
104.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
