geom_bar ggplot2 中未显示的绘图
Plots not showing in ggplot2 with geom_bar
我正在尝试使用 ggplot()
和 geom_bar()
绘制堆积条
示例数据(Titanic Kaggle 问题):
PassengerId Survived Age
1 0 25
2 1 20
3 1 40
4 0 10
我正在尝试显示每个年龄段的生存和死亡堆积条(我已将年龄划分为多个箱)。当我执行命令时,绘图不可见。当我添加 print() 函数时,我收到错误
Error: No layers in plot
请告诉我这里是否遗漏了什么?
breaks <- seq(min(train$Age), max(train$Age), 10)
p <- ggplot(train, aes(x=train$Age, y=length(train$PassengerId)), xlab = "age", ylab = "count", main = "survival",
fill = Survived + geom_bar(stat = "identity", bin = breaks))
print(p)
"train" 是我存储数据的对象。
这里有几个问题:
首先你应该删除年龄为NA的行,否则你不能创建一个序列。
train<-train[!is.na(train$Age),]
那么你应该将你的 y 值更改为 train$Survived
(你为什么使用 length(train$PassengerId)
? - 它不显示任何内容)
@Pascal 提到的事情也是正确的:你必须把 + geom_bar(stat="identity", bin=breaks)
放在外面。
并且您需要在 ggplot 中添加不同的轴和标题。
这是完整的工作代码:
train<-train[!is.na(train$Age),]
breaks <- seq(min(train$Age), max(train$Age), 10)
p <- ggplot(train, aes(x=train$Age, y=train$Survived),
fill = Survived)+ geom_bar(stat="identity", bin=breaks)
p <- p+labs(x="age", y="count")
p <- p+theme(plot.title= element_text("survival"))
print(p)
此图中的结果:
除了 Pascal 的提示之外,您可能还想:
- 彩色列的使用因子(幸存)
- 按照建议使用不同的 geom_bar() 和 aes() 参数
代码:
train <- data.frame(PassengerId = 1:4, Survived = factor(c(0,1,1,0)), Age = c(25, 20, 40, 10))
BIN.WIDTH <- 10
my.breaks <- seq(from = min(train$Age), to = max(train$Age) + BIN.WIDTH, by = BIN.WIDTH)
ggplot(train, aes(Age, fill = Survived)) + geom_bar(breaks = my.breaks)
剧情:
我正在尝试使用 ggplot()
和 geom_bar()
示例数据(Titanic Kaggle 问题):
PassengerId Survived Age
1 0 25
2 1 20
3 1 40
4 0 10
我正在尝试显示每个年龄段的生存和死亡堆积条(我已将年龄划分为多个箱)。当我执行命令时,绘图不可见。当我添加 print() 函数时,我收到错误
Error: No layers in plot
请告诉我这里是否遗漏了什么?
breaks <- seq(min(train$Age), max(train$Age), 10)
p <- ggplot(train, aes(x=train$Age, y=length(train$PassengerId)), xlab = "age", ylab = "count", main = "survival",
fill = Survived + geom_bar(stat = "identity", bin = breaks))
print(p)
"train" 是我存储数据的对象。
这里有几个问题:
首先你应该删除年龄为NA的行,否则你不能创建一个序列。
train<-train[!is.na(train$Age),]
那么你应该将你的 y 值更改为 train$Survived
(你为什么使用 length(train$PassengerId)
? - 它不显示任何内容)
@Pascal 提到的事情也是正确的:你必须把 + geom_bar(stat="identity", bin=breaks)
放在外面。
并且您需要在 ggplot 中添加不同的轴和标题。
这是完整的工作代码:
train<-train[!is.na(train$Age),]
breaks <- seq(min(train$Age), max(train$Age), 10)
p <- ggplot(train, aes(x=train$Age, y=train$Survived),
fill = Survived)+ geom_bar(stat="identity", bin=breaks)
p <- p+labs(x="age", y="count")
p <- p+theme(plot.title= element_text("survival"))
print(p)
此图中的结果:
除了 Pascal 的提示之外,您可能还想:
- 彩色列的使用因子(幸存)
- 按照建议使用不同的 geom_bar() 和 aes() 参数
代码:
train <- data.frame(PassengerId = 1:4, Survived = factor(c(0,1,1,0)), Age = c(25, 20, 40, 10))
BIN.WIDTH <- 10
my.breaks <- seq(from = min(train$Age), to = max(train$Age) + BIN.WIDTH, by = BIN.WIDTH)
ggplot(train, aes(Age, fill = Survived)) + geom_bar(breaks = my.breaks)
剧情: