相关疑难解决方法(0)

在保留标签的同时删除ggplot图例符号

示例代码和图:

data <- data.frame( ID = c(LETTERS[1:26], paste0("A",LETTERS[1:26])),
                    Group = rep(c("Control","Treatment"),26),
                    x = rnorm(52,50,20),
                    y = rnorm(52,50,10))

ggplot(data, aes(y=y,x=x, label=ID, color=Group)) + 
   geom_text(size=8) + 
   scale_color_manual(values=c("blue","red")) +
   theme_classic() +
   theme(legend.text = element_text(color=c("blue","red")))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我正在尝试解决的是删除图例符号("a")并为组标签(控制和处理)着色,因为它们出现在图中(分别为蓝色和红色).

我试过了:

geom_text(show_guide = F)
Run Code Online (Sandbox Code Playgroud)

但这完全取消了传说.

为了保持简单,我可以使用注释...但是想知道是否有特定于图例的解决方案.

ggplot(data, aes(y=y,x=x, label=ID, color=Group)) +
   geom_text(size=8, show_guide=F) +
   scale_color_manual(values=c("blue","red")) +
   theme_classic() +
   annotate("text",label="Control", color="blue",x=20,y=80,size=8) +
   annotate("text",label="Treatment", color="Red",x=23,y=77,size=8)
Run Code Online (Sandbox Code Playgroud)

r legend ggplot2

9
推荐指数
2
解决办法
1564
查看次数

在ggplot2中将数据映射到图例文本颜色的有效方法

我想知道是否有一种有效的方法将数据映射到ggplot2中的图例文本颜色,就像我们可以使用轴文本一样.可重复的例子如下.

首先,让我们制作一个情节:

library(ggplot2)
library(dplyr)

drv_counts <- mutate(mpg,
                     drv = case_when(drv == "r" ~ "rear wheel drive",
                                     drv == "4" ~ "4 wheel drive",
                                     drv == "f" ~ "front wheel drive"),
                     model_drv = interaction(model, drv)) %>%
  group_by(model_drv) %>%
  summarize(model = model[1], drv = drv[1], count = n()) %>%
  arrange(drv, count) %>%
  mutate(model = factor(model, levels = model))

p <- ggplot(drv_counts, aes(x=model, y=count, fill=drv)) +
  geom_col() + coord_flip() + guides(fill = guide_legend(reverse=T)) +
  theme_minimal()
p
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在让我们通过传动系为轴标签着色.这很容易:

# ggplot2 colors
cols <- c("4 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 r-grid

7
推荐指数
1
解决办法
547
查看次数

如何在R中手动更改ggplot2图例的文本颜色?

可能有一种简单的方法来执行此操作,但是我不确定它是什么。我正在尝试使图例中的文本与其旁边的颜色框匹配。我已经尝试了一段时间,但没有找到使用element_text函数向图例添加多种颜色的方法。我使每个标签都具有相同的颜色没有问题,但是有没有办法使每个图例标签具有不同的颜色?

在此处输入图片说明

data<-data.frame(count=c(39,36,19,6), category=c("a","b","c","d"))
data$fraction = data$count / sum(data$count)
data = data[order(data$fraction), ]
data$ymax = cumsum(data$fraction)
data$ymin = c(0, head(data$ymax, n=-1))

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Create Plot
fill <- c("blue3","cyan3","darkgrey","forestgreen")

library(ggplot2)

p1 = ggplot(data, aes(fill=category, ymax=ymax, ymin=ymin, xmax=4, xmin=3.5)) +  
 geom_rect(colour="White") +
 coord_polar(theta="y") +
 scale_fill_manual(values=fill)+
 theme_bw()+
 geom_label(aes(label=paste(data$fraction*100,"%"),x=4,y=
 (ymin+ymax)/2),inherit.aes = F)+
 theme(panel.grid=element_blank())+
 theme(axis.ticks=element_blank()) +     
 xlim(c(0, 4)) +
 theme(axis.text=element_blank()) +
 theme(legend.text=element_text(color=fill,size=12))+
 theme(legend.key.size=unit(2,'lines'))+
 theme(legend.key=element_rect(size=5))+
 labs(title="donut plot")


 print(p1)
Run Code Online (Sandbox Code Playgroud)

r legend ggplot2

6
推荐指数
2
解决办法
2852
查看次数

ggplot2每个图例标签的不同文本颜色

我试图获取图例标签的文本颜色以匹配其关联的填充/线条颜色。理想情况下,我希望将标签颜色映射到美学上,但是在这一点上,我很乐意手动指定颜色。这是一些使用内置PlantGrowth数据集的测试代码,其中包括我手动指定标签颜色的尝试:

ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) +
    geom_boxplot() +
    scale_fill_discrete(guide=guide_legend(label.theme=element_text(angle=0,
                                                                    size=9,
                                                                    color=c("red",
                                                                            "green",
                                                                            "blue"))))
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,图例标签全部使用我指定的第一种颜色(红色)。相反,我希望每个图例标签使用不同的颜色。ggplot2当前是否可以进行此类操作?

r ggplot2

5
推荐指数
1
解决办法
1250
查看次数

标签 统计

ggplot2 ×4

r ×4

legend ×2

r-grid ×1