Line (errorbar)

Authors

[Editor] Hu Zheng;

[Contributors]

Modified

2026-01-17

Note

Hiplot website

This page is the tutorial for source code version of the Hiplot Line (errorbar) plugin. You can also use the Hiplot website to achieve no code ploting. For more information please see the following link:

https://hiplot.cn/basic/line-errorbar?lang=en

The error line mainly indicates the error range of each data point and shows the potential error or uncertainty relative to each data in the series.

Setup

  • System Requirements: Cross-platform (Linux/MacOS/Windows)

  • Programming language: R

  • Dependent packages: data.table; jsonlite; ggpubr

# Install packages
if (!requireNamespace("data.table", quietly = TRUE)) {
  install.packages("data.table")
}
if (!requireNamespace("jsonlite", quietly = TRUE)) {
  install.packages("jsonlite")
}
if (!requireNamespace("ggpubr", quietly = TRUE)) {
  install.packages("ggpubr")
}

# Load packages
library(data.table)
library(jsonlite)
library(ggpubr)
sessioninfo::session_info("attached")
─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.5.2 (2025-10-31)
 os       Ubuntu 24.04.3 LTS
 system   x86_64, linux-gnu
 ui       X11
 language (EN)
 collate  C.UTF-8
 ctype    C.UTF-8
 tz       UTC
 date     2026-01-17
 pandoc   3.1.3 @ /usr/bin/ (via rmarkdown)
 quarto   1.8.27 @ /usr/local/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────
 package    * version date (UTC) lib source
 data.table * 1.18.0  2025-12-24 [1] RSPM
 ggplot2    * 4.0.1   2025-11-14 [1] RSPM
 ggpubr     * 0.6.2   2025-10-17 [1] RSPM
 jsonlite   * 2.0.0   2025-03-27 [1] RSPM

 [1] /home/runner/work/_temp/Library
 [2] /opt/R/4.5.2/lib/R/site-library
 [3] /opt/R/4.5.2/lib/R/library
 * ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────

Data Preparation

The loaded data are two groups and their corresponding values.

# Load data
data <- data.table::fread(jsonlite::read_json("https://hiplot.cn/ui/basic/line-errorbar/data.json")$exampleData$textarea[[1]])
data <- as.data.frame(data)

# Convert data structure
data[, 3] <- factor(data[, 3], levels = unique(data[, 3]))

# View data
head(data)
  Value Group2 Group1
1   4.2 treat1    low
2  11.5 treat1    low
3   7.3 treat1    low
4   5.8 treat1    low
5   6.4 treat1    low
6  10.0 treat1    low

Visualization

# Line (errorbar)
p <- ggline(
  data, x = "Group1", y = "Value", color = "Group2",
  add = "mean_se", title = "Line plot with errorbar", palette = "npg") +
  stat_compare_means(aes_(group = as.name("Group2"))) +
  theme_bw() +
  theme(text = element_text(family = "Arial"),
        plot.title = element_text(size = 12, hjust = 0.5),
        axis.title = element_text(size = 12),
        axis.text = element_text(size = 10),
        axis.text.x = element_text(angle = 0, hjust = 0.5,vjust = 1),
        legend.position = "right",
        legend.direction = "vertical",
        legend.title = element_text(size = 10),
        legend.text = element_text(size = 10))

p
FigureΒ 1: Line (errorbar)

The red line in low type represents the maximum value of the low type in treat1, the red line represents the minimum value of the low type in treat1, and so on. Conduct rank-sum test on treat1 and treat2 according to low,mid and high types respectively, and display p-value at the top of the figure.