gpt4 book ai didi

r - 使用表情符号的 ggplot 图例

转载 作者:行者123 更新时间:2023-12-02 18:10:25 29 4
gpt4 key购买 nike

我有下面的代码,可以生成饼图和图例。有没有办法让表情符号和饼图具有相同的对应颜色,因为目前表情符号是黑色的。另外,我希望删除图例中的方形色 block ,并且术语“男性”和“女性”出现在正确的表情符号旁边

library(tidyverse)
library(emojifont)
load.emojifont("OpenSansEmoji.ttf")

gender<-data.frame(`Gender`=c("Male","Female"),
`Proportion`=c(45,55), symbol=c("\UF182","\UF183"))

ggplot(gender, aes(x="", Proportion, fill=symbol, label=symbol)) +
geom_bar(width = 1, stat = "identity")+
coord_polar("y", start=0)+
xlab(NULL)+ylab(NULL) +
theme(legend.text=element_text(family='fontawesome-webfont'))

最佳答案

实现所需结果的一个选项是通过自定义键字形函数来替换默认的 rectgeom_bar 使用通过您的符号:

  1. 定制draw_key_symbol我改编的功能ggplot2::draw_key_text根据您的用例。
  2. 为了选择正确的符号,我首先设置颜色和符号调色板,将颜色和符号分配给性别。然后根据填充颜色通过 symbols[names(match.arg(data$fill, pal))] 选择正确的符号
  3. 而不是 symbol我 map Gender关于fill aes 和使用 scale_fill_manual设置颜色。

注意:虽然我使用默认的 ggplot2 颜色,但下面的代码也应该适用于性别的自定义颜色。

library(ggplot2)
library(grid)
library(emojifont)

load.emojifont("OpenSansEmoji.ttf")

gender <- data.frame(
`Gender` = c("Male", "Female"),
`Proportion` = c(45, 55),
symbol = c("\UF182", "\UF183")
)

# Color palette
pal <- scales::hue_pal()(2)
names(pal) <- c("Female", "Male")
# Symbol palette
symbols <- c("\UF182", "\UF183")
names(symbols) <- c("Female", "Male")

draw_key_symbol <- function(data, params, size) {
data$label <- symbols[names(match.arg(data$fill, pal))]

grid::textGrob(data$label, 0.5, 0.5,
gp = grid::gpar(col = data$fill,
fontfamily = "fontawesome-webfont",
fontsize = 3.88 * .pt))
}

ggplot(gender, aes(x = "", Proportion, fill = Gender)) +
geom_bar(width = 1, stat = "identity", key_glyph = "symbol") +
scale_fill_manual(values = pal) +
coord_polar("y", start = 0) +
labs(x = NULL, y = NULL)

enter image description here

关于r - 使用表情符号的 ggplot 图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72448513/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com