https://github.com/viniciusoike/claudeplot
Anthropic and Claude inspired ggplot2 themes and color scales
https://github.com/viniciusoike/claudeplot
anthropic claude color-palettes data-visualization ggplot2 ggplot2-themes r rstats
Last synced: about 3 hours ago
JSON representation
Anthropic and Claude inspired ggplot2 themes and color scales
- Host: GitHub
- URL: https://github.com/viniciusoike/claudeplot
- Owner: viniciusoike
- License: other
- Created: 2026-06-09T20:55:51.000Z (28 days ago)
- Default Branch: main
- Last Pushed: 2026-06-29T20:53:05.000Z (8 days ago)
- Last Synced: 2026-06-29T22:23:25.070Z (8 days ago)
- Topics: anthropic, claude, color-palettes, data-visualization, ggplot2, ggplot2-themes, r, rstats
- Language: R
- Homepage: https://viniciusoike.github.io/claudeplot/
- Size: 5.29 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.Rmd
- Changelog: NEWS.md
- License: LICENSE
Awesome Lists containing this project
README
---
output: github_document
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%",
dev = "ragg_png",
dpi = 120
)
```
# claudeplot 
[](https://github.com/viniciusoike/claudeplot/actions/workflows/R-CMD-check.yaml)
[](https://lifecycle.r-lib.org/articles/stages.html#stable)
[](https://github.com/viniciusoike/claudeplot)
[](https://viniciusoike.r-universe.dev/claudeplot)
**claudeplot** brings the visual language of [Anthropic](https://www.anthropic.com)
and Claude to `ggplot2`. It gives you a clean, publication-ready theme, color
palettes drawn from Anthropic's brand and its data-visualization style, discrete
and continuous color/fill scales, and palette display helpers. Anthropic's
recommended open typefaces — **Poppins** for headings and **Lora** for body
text — are bundled and registered automatically.
## Installation
Install the development version from GitHub:
```{r, eval = FALSE}
# install.packages("pak")
pak::pak("viniciusoike/claudeplot")
```
Or install from [R-universe](https://viniciusoike.r-universe.dev):
```{r, eval = FALSE}
install.packages(
"claudeplot",
repos = c("https://viniciusoike.r-universe.dev", "https://cloud.r-project.org")
)
```
For the bundled fonts to render, install the suggested packages and use a
`ragg` graphics device:
```{r, eval = FALSE}
install.packages(c("systemfonts", "ragg"))
```
## Usage
```{r bar, eval = FALSE}
library(ggplot2)
library(claudeplot)
df <- data.frame(
model = c("Claude Opus 4.6", "Claude Opus 4.7", "Claude Opus 4.8", "Claude Fable 5"),
score = c(58.6, 69.2, 80.3, 88.4)
)
ggplot(df, aes(model, score, fill = model)) +
geom_col(width = 0.7) +
geom_text(aes(label = score), vjust = -0.5, fontface = "bold") +
scale_fill_claude_d() +
labs(
title = "Agentic coding",
subtitle = "SWE-Bench Pro success rate (%)",
x = NULL, y = "Success rate (%)"
) +
theme_claude() +
theme(legend.position = "none")
```
```{r, echo = FALSE, out.width = "100%"}
knitr::include_graphics("man/figures/README-bar-1.png")
```
## Color scales
Discrete (`_d`) and continuous (`_c`) scales are available for both `color`
(and `colour`) and `fill`:
```{r, eval = FALSE}
scale_color_claude_d(palette = "claude") # discrete, vivid benchmark palette
scale_fill_claude_d(palette = "brand") # discrete, muted brand accents
scale_fill_claude_c(palette = "oranges") # continuous, sequential
scale_color_claude_c(palette = "orange_blue") # continuous, diverging
```
## Palettes
Explore palettes with `show_claude_palette()` (one palette) and
`show_claude_palettes()` (all of them):
```{r palettes, eval = FALSE}
show_claude_palettes()
```
```{r, echo = FALSE, out.width = "100%"}
knitr::include_graphics("man/figures/README-palettes-1.png")
```
The families are **qualitative** (`claude`, `brand`, `warm`, `cool`,
`neutral`), **sequential** (`oranges`, `blues`, `greens`, `grays`), and
**diverging** (`orange_blue`, `green_orange`, `spectral`). List them with
`claude_palette_names()`.
## Fonts
claudeplot bundles Poppins and Lora (both SIL Open Font License). They are
registered with `systemfonts` when the package loads. Check the status with:
```{r, eval = FALSE}
claude_font_status()
```
If the fonts are unavailable, `theme_claude()` falls back to generic `"sans"`
and `"serif"` families.
## How this package was made
`claudeplot` is itself a small experiment. It was built on the release day of
**Claude Fable 5**, as a test of what Claude (the model writing this) can do
end to end: researching Anthropic's brand and chart style, designing the
palettes and theme, writing the package, getting it to pass `R CMD check
--as-cran` with zero notes, and shipping the GitHub repo and pkgdown site.
It was produced largely from a *single prompt*, with the help of a few useful
templates and reference packages. Treat it as a demonstration rather than a
battle-tested library — though the goal was very much to make it real.
## Acknowledgements
Colors and typography follow Anthropic's published
[brand guidelines](https://github.com/anthropics/skills/blob/main/skills/brand-guidelines/SKILL.md).
This is an unofficial, community package and is not affiliated with or endorsed
by Anthropic.