我正在尝试创建一个条形图,其中使用 ggplot2 将所描绘的值写入条形图内。我仍然想用值“0”标记该组,但使用不同的颜色(黑色)并在 x 轴的正上方。如何仅更改此 geom_text 的位置和颜色?
我已经尝试在 scale_colour_manual 中输入一个向量,但它没有用(或者我没有做对)。
data <- read.table(text = "group percentage
group1 30
group2 29
group3 0
group4 18", header=TRUE)
library(ggplot2)
ggplot(data, aes(x=group, y=percentage))+
theme_bw()+
geom_bar(stat = 'identity', position = "dodge", fill="#13449f")+
geom_text(aes(label = percentage), position = position_dodge(0.9),
vjust=1.3, colour = "white", size=6)
Run Code Online (Sandbox Code Playgroud)
使用此代码,group3 没有标签,因为也没有栏。我想在 x 轴上方仍然有一个黑色标签。
我试图在 ggplot2 中排列三个相同大小的图(或多或少是二次的)。我希望两个图位于上行,一个位于下行。下排的单个图应居中。我只知道当下部图左对齐时如何排列图。
到目前为止,我一直在使用 ggarrange 来排列绘图(因为使用了align=“v”命令)。我的代码看起来像这样(首先我创建了三个图 p1、p2、p3):
ggsave("H:/Documents/graph.pdf", height=8, width=10, units="in", dpi=300,
ggarrange(p1, p2, p3, ncol=2, nrow=2, align="v"))
Run Code Online (Sandbox Code Playgroud)
我也尝试过将 grid.arrange 与layout_matrix 命令一起使用,但这根本不起作用!
有谁知道我如何将下部图居中?
我使用 ggplot2 创建了一个条形图,并用它们描绘的值标记了条形图。由于这些值相当大,我想使用千位分隔符。但我想使用倒逗号而不是普通逗号(我已经找到了如何使用逗号分隔)。
我已经尝试以同样的方式来改变 scale_y_continuous 中的千位分隔符,但它没有用。
我还读到我应该使用:
df <- df %>%
mutate(label.income = gsub("\\,","'", scales::comma(income)))
Run Code Online (Sandbox Code Playgroud)
但是后来我总是收到以下错误消息:“使用方法中的错误(“mutate_”):“mutate_”没有适用的方法应用于“函数”类的对象”
这是我正在使用的数据和代码:
set1 <- read.table(text = "group income
group1 30500
group2 29000
group3 60500
group4 18000", header=TRUE)
library(ggplot2)
ggplot(set1, aes(x=group, y=income))+
theme_bw()+
geom_bar(stat = 'identity', position = "dodge", fill="#13449f")+
geom_text(aes(label = income), position = position_dodge(0.9),
vjust=1.3, colour = "white", size=5)+
scale_y_continuous(breaks = seq(0, 70000, by = 10000), limits = c(0,70000), labels=function(income) format(income, big.mark = "'", scientific = FALSE))
Run Code Online (Sandbox Code Playgroud)
如何在条形标签上使用与 y 轴上相同的千位分隔符?