Skip to content
/ plotcli Public

❗ This is a read-only mirror of the CRAN R package repository. plotcli — Command Line Interface Plotting. Homepage: https://github.com/cheuerde/plotcli

Notifications You must be signed in to change notification settings

cran/plotcli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

plotcli: Command-Line Plots for R

CRAN status CRAN checks Downloads Downloads

Colored Density Plot on Terminal

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.

Features

  • ggplotcli: Universal ggplot2 converter - render any ggplot in the terminal
  • 14 Supported Geoms: points, lines, bars, histograms, density, smooth, area, segments, and more
  • Faceting: Full support for facet_wrap() and facet_grid()
  • Theme Auto-Detection: Automatically respects ggplot2 themes (borders, grids)
  • Multiple Canvas Types: Braille (high-res), Block, or ASCII
  • Colored Output: Full ANSI color support for aesthetics
  • R6 Class Interface: Direct plotting with plotcli class

plotcli is heavily inspired by the excellent UnicodePlots.jl library.

Quick Start

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                            

Faceting Example

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     

Styling Options

# 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

Supported Geoms

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

Installation

# 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")

Direct R6 Class Usage

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.

Showcase

Colored Density Plot on Terminal Colored Density Plot on Terminal Colored Density Plot on Terminal Colored Density Plot on Terminal Colored Density Plot on Terminal

Similar Projects

  • txtplot: The OG in R
  • r-plot: Collection of excellent terminal plotting functions
  • UnicodePlots.jl: The gold standard for terminal graphics
  • plotext: Powerful terminal graphics in python

License

plotcli is released under the LGPL-3 License.

About

❗ This is a read-only mirror of the CRAN R package repository. plotcli — Command Line Interface Plotting. Homepage: https://github.com/cheuerde/plotcli

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages