R 如何更改ggplot中的图例标题
我有下面的情节。 它是使用以下命令创建的:R 如何更改ggplot中的图例标题,r,plot,ggplot2,R,Plot,Ggplot2,我有下面的情节。 它是使用以下命令创建的: library(ggplot2) df <- data.frame(cond = factor(rep(c("A", "B"), each = 200)), rating = c(rnorm(200), rnorm(200, mean=.8))) ggplot(df, aes(x=rating, fill=cond)) + geom_density(alpha = .3) + xlab("NEW RATI
library(ggplot2)
df <- data.frame(cond = factor(rep(c("A", "B"), each = 200)),
rating = c(rnorm(200), rnorm(200, mean=.8)))
ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
但它不起作用。正确的方法是什么
这应该可以:
p <- ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha=.3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
p <- p + guides(fill=guide_legend(title="New Legend Title"))
因为你有两种密度,我想你可能想用
比例\填充\手册设置你自己的颜色
如果是这样,您可以:
df <- data.frame(x=1:10,group=c(rep("a",5),rep("b",5)))
legend_title <- "OMG My Title"
ggplot(df, aes(x=x, fill=group)) + geom_density(alpha=.3) +
scale_fill_manual(legend_title,values=c("orange","red"))
df还有一个非常简单的答案,可以用于一些简单的图形
只需在图形中添加对guide_legend()的调用
ggplot(...) + ... + guide_legend(title="my awesome title")
如图所示,非常漂亮
如果不起作用,您可以通过调用以下命令更精确地设置指南参数:
您还可以通过为调用指南指定这些参数来改变形状/颜色/大小。我没有深入研究这个问题,但因为您在ggplot()中使用了fill=cond
可能不管用。无论您如何用填充替换颜色,它都可以工作
+ labs(fill='NEW LEGEND TITLE')
这在ggplot2_2.1.0中对我很有用,因为在代码中,您使用了ggplot(data,fill=cond)
来创建直方图,您需要在标签部分也使用“fill”来添加图例标题,即+labs(fill=“title name”)
。如果使用代码为ggplot(数据,color=cond)的不同类型的绘图,则可以使用+labs(color=“Title Name”)
。总之,lab参数必须与aes参数匹配
我使用了+指南(fill=guide\u legend(“我最棒的标题”))
来更改geom\u条形图上的图例标题,但它似乎对geom\u point不起作用。我在ggplot中使用了一个facet\u wrap,除了ArnaudA的解决方案外,所有建议的解决方案对我都不起作用:
qplot(…) + guides(color=guide_legend(title="sale year"))
上面的代码都不适合我
这是我发现的,它起作用了
labs(color=“销售年份”)
您还可以通过在末尾添加\n
在标题和显示之间留出一个空格
labs(color='sale year\n”)
许多人花费大量时间更改标签、图例标签、标题和轴的名称,因为他们不知道可以在R中加载包含空格的表”“
。但是,您可以这样做以节省时间或减少代码的大小,方法是在加载以制表符(或默认分隔符或单个空格以外的任何其他分隔符)分隔的表时指定分隔符:
或者使用csv格式的默认加载参数:
read.csv()
这意味着您可以直接将名称“NEW LEGEND TITLE”
保留为原始数据文件中的列名(标题),以避免在每个绘图中指定新的图例标题。只需添加到列表中(此处的其他选项不适用于我),您还可以使用函数update\u labels for ggplot:
p <- ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha=.3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
这也将允许您更改x轴和y轴标签,使用单独的线:
update_labels(p, list(x="NEW X LABEL",y="NEW Y LABEL")
我注意到有两种方法可以更改/指定ggboxplot()的legend.title:
库(ggpubr)
bxp.defaultLegendggplot(df)+labs(legend='')
将此添加到混合中,用于更改颜色时。这对我来说也适用于两个离散变量的qplot:
p+ scale_fill_manual(values = Main_parties_color, name = "Main Parties")
我要告诉你的是,你可以用一个公式来更改图例、轴、标题等的标签,而不需要记忆多个公式。这不会影响字体样式或标题和轴的标签/文本的设计
我将给出以下问题的完整答案
library(ggplot2)
rating <- c(rnorm(200), rnorm(200, mean=.8))
cond <-factor(rep(c("A", "B"), each = 200))
df <- data.frame(cond,rating
)
k<- ggplot(data=df, aes(x=rating, fill=cond))+
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
# to change the cond to a different label
k$labels$fill="New Legend Title"
# to change the axis titles
k$labels$y="Y Axis"
k$labels$x="X Axis"
k
更改图例。“填充”用于显示不同颜色的标签。如果您有显示大小的标签,如1点表示100,其他点表示200等,那么您可以像这样使用此代码-
k$labels$size ="Size of points"
它将更改标签标题。labs(fill=“xyz”)
应该do@User632716它已经存在于某人的答案中,belowit不起作用……对于那些寻找包含多个geom\uu
语句的绘图的答案的人,我建议答案在,这是唯一一个对我有效的方法。请注意,对于其他类型的图形(当你在aes中使用“颜色”而不是“填充”时),OP问题代码已经有效了。”“颜色”已经正确,而不是“填充”!我尝试所有的答案都快发疯了,我的答案就在这个问题上!;)这对我不起作用,但是qplot(…)+guides(color=guide\u legend(title=“sale year”)
worked另一种选择是p$labels$fillp$labels$fill与scale\u fill\u discretep$labels$fill
之间的区别对我不起作用。使用ggplot2_2.1.0
我使用p$labels$colorp$labels$fill
很好,但是如果在aes中使用多个美学变量(线型、颜色、形状),则必须分别对每个变量进行更改。我认为这是最具挑战性的答案,它完全符合OP的要求,在MOST处增加一行color=和fill=都应该起作用。这是问题的“正确”答案,填充颜色是否有效取决于“cond”(或其他情况下的组)真正映射到的是什么。这是最好的答案。注意:在ggplot2 3.0+中,此解决方案不起作用:通过p+guides(fill=guide\u legend(title=“New legend title”)
…解决,但对于geom\u point()
,这对我有效:指南(color=guide\u legend(“Type”)
@knb,您的方法有效:指南(color=guide\u legend(“分数排名”)
这有什么不同吗?这有什么不同吗?是的,我尝试了上面的每一个例子,这是唯一一个对我有效的例子。谢谢!鉴于原始帖子的问题,这将如何工作,似乎填充而不是颜色(或颜色)是否需要?考虑到问题的时间,它可能与版本相关。@merv主要区别在于此版本确实有效。请删除“OMG”
p <- ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha=.3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
update_labels(p, list(colour="MY NEW LEGEND TITLE")
update_labels(p, list(x="NEW X LABEL",y="NEW Y LABEL")
library(ggpubr)
bxp.defaultLegend <- ggboxplot(ToothGrowth, x = "dose", y = "len",
color = "dose", palette = "jco")
# Solution 1, setup legend.title directly in ggboxplot()
bxp.legend <- ggboxplot(ToothGrowth, x = "dose", y = "len",
color = "dose", palette = "jco", legend.title="Dose (mg)")
# Solution 2: Change legend title and appearnace in ggboxplot() using labs() and theme() option:
plot1 <- bxp.defaultLegend + labs(color = "Dose (mg)") +
theme(legend.title = element_text(color = "blue", size = 10), legend.text = element_text(color = "red"))
ggarrange(list(bxp.legend, bxp.defaultLegend, plot1), nrow = 1, ncol = 3, common.legend = TRUE)
p+ scale_fill_manual(values = Main_parties_color, name = "Main Parties")
library(ggplot2)
rating <- c(rnorm(200), rnorm(200, mean=.8))
cond <-factor(rep(c("A", "B"), each = 200))
df <- data.frame(cond,rating
)
k<- ggplot(data=df, aes(x=rating, fill=cond))+
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
# to change the cond to a different label
k$labels$fill="New Legend Title"
# to change the axis titles
k$labels$y="Y Axis"
k$labels$x="X Axis"
k
k$labels$fill ="New Legend Title"
k$labels$size ="Size of points"