我正在为我的海报创建一个barplot,但是遇到了问题。 我的x轴上有一个因子,而我的y轴上有一个数字。我希望我的x轴显示因子的每个级别,但名称不同。
为此,我使用了scale_x_discrete命令,该命令应该允许我执行此操作。但是,它只是删除所有刻度。请在下面找到重现该问题所需的所有代码。
F_Value <- c(13.011, 8.827, 15.586, 7.223, 16.190, 9.844)
Pathway <- as.factor(1:6)
Transformation <- as.factor(c(1, 1, 2, 2, 3, 3))
Outlier <- as.factor(c("Outliers", "Outlier Removed",
"Outliers", "Outlier Removed",
"Outliers", "Outlier Removed"))
df <- as.data.frame(cbind(F_Value, Pathway, Transformation, Outlier))
df
ggplot(df,
aes(x = Pathway,
y = F_Value, f
ill = factor(Outlier))) +
geom_bar(stat = "identity",
position = "dodge") +
scale_x_discrete(labels = c("1" = "Raw", "2" = "Raw, Trimmed",
"3" = "Log", "4" = "Log, Trimmed",
"5" = "Normalised", "6" = "Normalised, Trimmed")) +
scale_fill_discrete(name = "Outliers",
labels = c("Trimmed", "Not Trimmed")) +
xlab("Pathway") +
ylab("F-Statistic") +
ggtitle("F-Statistics by Pathway") +
theme_light()
答案 0 :(得分:3)
将x变量转换为字符:
ggplot(df,
aes(x = as.character(Pathway),
y = F_Value, f
ill = factor(Outlier))) +
geom_bar(stat = "identity",
position = "dodge") +
scale_x_discrete(labels = c("1" = "Raw", "2" = "Raw, Trimmed",
"3" = "Log", "4" = "Log, Trimmed",
"5" = "Normalised", "6" = "Normalised, Trimmed")) +
scale_fill_discrete(name = "Outliers",
labels = c("Trimmed", "Not Trimmed")) +
xlab("Pathway") +
ylab("F-Statistic") +
ggtitle("F-Statistics by Pathway") +
theme_light()