plotcli is an R package that brings the power of command-line plotting to your R environment. With a simple and intuitive interface, plotcli allows you to create and customize a variety of plot types directly in your console using Unicode Braille characters and ANSI colors.
ggplotcli: Universal ggplot2 converter
- render any ggplot in the terminalfacet_wrap() and facet_grid()plotcli classplotcli is heavily inspired by the excellent UnicodePlots.jl
library.
library(plotcli)
library(ggplot2)
# Any ggplot2 plot works!
p <- ggplot(mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
geom_point() +
labs(title = "MPG vs Weight")
# Render in terminal
ggplotcli(p)Output:
MPG vs Weight
35.0 ⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤
⠒⠒⣗⢒⠒⠒⠒⠒⡗⠒⠚⠒⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒
30.0 ⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉
m ⠤⠤⡧⠤⠤⠤⠤⠬⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤
p 25.0 ⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒⠒⡒⠒⡗⠒⠒⠒⠒⠒⡗⠒⡚⠒⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒
g 20.0 ⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣙⣉⣙⣙⣉⣏⣉⣙⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉
⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠼⡧⠤⠤⡤⠬⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤
15.0 ⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠲⡷⡖⠒⠲⠒⠒⡗⠓⠒⠒⠒⠒⡗⠒⠒
⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣋⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉
10.0 ⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠦⠤⠦⡧⠤⠤
2.0 3.0 4.0 5.0
wt
p <- ggplot(mtcars, aes(x = wt, y = mpg)) +
geom_point(color = "blue") +
facet_wrap(~cyl) +
labs(title = "MPG by Cylinders") +
theme_bw() # Automatically adds borders!
ggplotcli(p, width = 70, height = 16)Output:
MPG by Cylinders
4 6 8
⡏⠉⠩⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⢹ ⡏⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⢹ ⡏⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⢹
⡇ ⠁ ⢸ ⡇ ⢸ ⡇ ⢸
30.0⡇⠉ ⢸ ⡇ ⢸ ⡇ ⢸
⡇ ⢂ ⢸ ⡇ ⢸ ⡇ ⢸
⡇ ⠈⡀⢀ ⠈ ⢸ ⡇ ⡀⡀⢀ ⢸ ⡇ ⢸
20.0⡇ ⢸ ⡇ ⠠ ⠠ ⢸ ⡇ ⢀ ⠠ ⢸
⡇ ⢸ ⡇ ⠘ ⢸ ⡇ ⠄⢀ ⢸
⡇ ⢸ ⡇ ⢸ ⡇ ⠈⠐⡂⠂ ⠠⢸
10.0⣇⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣸ ⣇⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣸ ⣇⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣒⣸
2.0 4.0 2.0 4.0 2.0 4.0
# With border and grid
ggplotcli(p, border = TRUE, grid = "major")
# Different canvas types
ggplotcli(p, canvas_type = "braille") # High resolution (default)
ggplotcli(p, canvas_type = "block") # Medium resolution
ggplotcli(p, canvas_type = "ascii") # Basic ASCII| Geom | Status |
|---|---|
geom_point |
✓ |
geom_line, geom_path |
✓ |
geom_bar, geom_col,
geom_histogram |
✓ |
geom_density |
✓ |
geom_smooth |
✓ |
geom_area |
✓ |
geom_segment, geom_hline,
geom_vline |
✓ |
geom_rect |
✓ |
geom_text |
✓ |
geom_boxplot |
✓ |
geom_tile (heatmaps) |
Planned |
# From CRAN
install.packages("plotcli")
# Or from GitHub for the latest development version
# Using remotes (recommended)
remotes::install_github("cheuerde/plotcli")
# Or using devtools
devtools::install_github("cheuerde/plotcli")For more control, use the plotcli R6 class directly:
# Using plotcli R6 class directly
pc <- plotcli$new(width = 60, height = 20)
pc$add_data(mtcars$wt, mtcars$mpg)
pc$add_title("MPG vs Weight")
pc$print_plot()Check the vignettes for all possible ways of using the package.

plotcli is released under the LGPL-3 License.