【发布时间】:2019-09-04 17:22:41
【问题描述】:
我是使用 R 的新手,但遇到了问题。
我使用geom_point 制作了一个散点图。
我已设法重命名构面网格标签,但我不知道如何重命名图形图例。我尝试将geom_point(aes(colour = Diet)) 行重命名为geom_point(aes(colour = diet_names)),但出现以下错误:
Error: Aesthetics must be either length 1 or the same as the data (23): colour.
如果我删除除以下值之一之外的所有值(例如,只保留 fish_or = "Fish"),则不会发生错误,但显然我不希望表格上只有一个颜色值。
diet_names <- c(
fish_or = "Fish" ,
fruit_pu = "Fruit" ,
insects_nectar_bl = "Insects & Nectar" ,
insects_re = "Insects" ,
seeds_gr = "Seeds")
我想将图例编辑成更清晰的内容,因为它是我正在制作的海报的数据。谢谢:)
完整代码:
library(ggplot2)
library(dplyr)
Birdbeaks <- read.csv("Birdbeaks.csv", stringsAsFactors = FALSE)
diet_names <- c(
fish_or = "Fish" ,
fruit_pu = "Fruit" ,
insects_nectar_bl = "Insects & Nectar" ,
insects_re = "Insects" ,
seeds_gr = "Seeds")
ggplot(Birdbeaks, aes(bill_lengthavg, bill_depthavg)) +
geom_point(aes(colour = diet)) +
labs(x = "Bill Length(cm)", y = "Bill Depth(cm)", colour = "Diet")+
guides(col = guide_legend(override.aes = list(shape = 15, size = 5))) +
theme_update()+
facet_grid(~diet, scales="fixed", labeller = as_labeller(diet_names))
【问题讨论】:
-
aes中的任何内容通常应该是所使用数据中列的裸名。在数据中创建一个变量来引入这些饮食值 -
您还可以使用
labels参数将标签更改为您的色标 -
我通常只编辑 csv 本身以简化我的工作,但由于它是作业的一部分,我想尽可能多地使用 R。有没有办法可以使用 R 本身添加变量?
-
有很多方法可以将列添加到数据框中,任何有关 R 入门的教程都应该向您展示如何使用。由于我们没有您的数据样本,因此我们无法具体提供帮助——目前尚不清楚您是要在数据框中添加向量作为列,还是需要进行合并/连接, 或改变因子水平
标签: r ggplot2 rename facet-grid