ggwordcloud icon indicating copy to clipboard operation
ggwordcloud copied to clipboard

Color issue when used together with dark theme

Open AndhikaWB opened this issue 1 year ago • 5 comments

Text doesn't show when this library is used together with ggdark theme

library(ggdark)

data("love_words_small")
ggplot(love_words_small, aes(label = word, size = speakers)) +
  geom_text_wordcloud() +
  scale_size_area(max_size = 30) +
  dark_theme_minimal()

When not used with ggdark (ignore the overlapping text, too lazy to fix) image


When used with ggdark (see code above) image


Changing color to white via the color parameter also doesn't seem to produce white text, it will produce red/orange text instead

data("love_words_small")
ggplot(love_words_small, aes(label = word, size = speakers, color = 'white')) +
  geom_text_wordcloud() +
  scale_size_area(max_size = 40) +
  dark_theme_minimal()

image

AndhikaWB avatar Jul 22 '24 13:07 AndhikaWB

Tested on both cairo (png) and svglite (svg) renderer

Here is my example Quarto markdown (.qmd) header:

---
title: Test
author: AndhikaWB
date: last-modified
date-format: long
format: gfm
knitr:
  opts_chunk:
    echo: true
    results: hold
    dev: svglite
    dev.args:
      scaling: 1.25
---

AndhikaWB avatar Jul 22 '24 13:07 AndhikaWB

Let me look at this issue.

lepennec avatar Jul 22 '24 13:07 lepennec

Oh wait, the scale_color_gradient works just fine, I just forgot to add the color argument on the ggplot function (gonna edit the original post soon)

The red/orange text issue when using color = 'white', however, is still reproducible

AndhikaWB avatar Jul 22 '24 14:07 AndhikaWB

For the color = 'white' issue, you should put color outside aes.

That said, it seems that there is a strange issue with the current library stack, as I cannot reproduce my own examples...

lepennec avatar Jul 22 '24 14:07 lepennec

Hi @lepennec

I tried putting color = 'white' outside aes but the font color is now all black/blank (since the background is black too)

data("love_words_small")
ggplot(love_words_small, aes(label = word, size = speakers), color = 'white') +
  geom_text_wordcloud() +
  scale_size_area(max_size = 40) +
  dark_theme_minimal()

For now I'm using scale_color_gradient or other scale function as workaround

AndhikaWB avatar Jul 22 '24 15:07 AndhikaWB