r - 在ggplot2中重命名变量名
问题描述
我对 ggplot2 的图例中的变量名有疑问
我相信你觉得它很简单,所以我现在不提供可重现的代码。
我对长数据运行这个 ggplot2 查询:
ggplot(subset(BaumA_long,
Messpunkt %in% c("Tleaf","Tair","Tcrown","TbarkS","TbarkN", "Tsoil")),
aes(x=Zeit, y=value, color=Messpunkt)) +
geom_line(size=0.3) +
scale_x_datetime(limits=start.endKW26, labels = date_format("%d.%m. %H h",tz = "CET"),
breaks = date_breaks("12 hours"), expand = c(0, 0)) +
scale_y_continuous(limits = c(5, 55), breaks = seq(10, 55, by = 3)) +
labs(x="Datum", y="Temperatur") +
ggtitle("Cbet 1")+
theme(plot.title = element_text(vjust=-15),
axis.text.x = element_text(angle = 35))+
theme(legend.position='top') +
#labels=c("Tleaf"="Blatt", "Tair"="Luft", "Tcrown"="Krone",
# "TbarkS"="Borke_S", "TbarkN"="Borke_N","Tsoil"="Substrat") +
scale_color_manual(values = c("Tleaf" = "#339900", "Tair" = "blue", "Tcrown"= "red",
"TbarkS" = "orange2", "TbarkN" = "pink", "Tsoil" = "brown"))
这给了我以下情节:
我要更改的只是图例中变量“Tleaf”等的名称。我试过:
ggplot +
labels=c("Tleaf"="Blatt", "Tair"="Luft", "Tcrown"="Krone",
"TbarkS"="Borke_S", "TbarkN"="Borke_N","Tsoil"="Substrat") +
没有成功。
为了保持我的代码简洁和简短,我想避免重命名所有变量,因为我有很多数据集。
解决方案
使用scale_color_discrete()
:
代码
library(ggplot2)
labels <- c(var1 = "Custom Value 1", var2 = "Custom Value 2", var3 = "Custom Value 3")
ggplot(df, aes(x, val, col = var)) +
geom_line() +
scale_color_discrete(labels = labels)
数据
structure(list(x = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 1L, 2L, 3L, 4L, 5L,
6L, 7L, 8L, 9L, 10L), var = c("var1", "var1", "var1", "var1",
"var1", "var1", "var1", "var1", "var1", "var1", "var2", "var2",
"var2", "var2", "var2", "var2", "var2", "var2", "var2", "var2",
"var3", "var3", "var3", "var3", "var3", "var3", "var3", "var3",
"var3", "var3"), val = c(-0.33, 0.96, 1.39, 0.92, 1.06, -0.63,
-0.33, 2.94, -1.42, -0.15, 3.6, 1.59, 3.87, 3.25, 2.25, 2.83,
2.71, 1.13, 4.49, 0.8, 2.67, 3.22, 3.23, 3.39, 2.92, 3.04, 3,
3.3, 3.22, 3.4)), class = "data.frame", row.names = c(NA, -30L
))
推荐阅读
- java - 如何反转字符串数组中的每个字符串?
- java - 在 Reactor Netty HttpClient/HttpServer 配置中,我无法在发往服务器的帖子中检索请求对象
- css - 如何连接和对齐两个框
- c++ - 在启用 UBSAN 的情况下将 double 转换为 long long 时超出可表示值的范围
- discord.js - discord.js TypeError:无法读取未定义的属性“id”并制作失败系统
- javascript - 接受 javascript 输入
- linux - 如果命令输出被重定向到日志文件,cron 停止发送错误邮件
- python - AttributeError:“GameWidget”对象没有属性“_on_keyboard_close”
- java - 如何在不使用 Lambda 的情况下编写此代码并且仍然可以正常工作?
- angular - 当 auth 状态改变时调用 map 操作符内部的方法