R bar_geom 以柱为单位的千位分隔符
R bar_geom thousand separator in bars
我有一个数据框,其中包含不同的评分标准和综合浏览量,如下例所示:
categories| pageviews
health | 700000
recipes | 1000000
diet | 500000
现在我用以下代码绘制它以获得条形图:
p <- ggplot(df, aes(reorder(pagePathLevel1, -pageviews), pageviews))
p + geom_bar(fill = "#00CC33", stat = "identity") +
labs(x="categories", y="pageviews") +
scale_y_continuous(labels=function(x) format(x, big.mark = ".", scientific = FALSE)) +
geom_text(aes(label=pageviews), size=4, vjust = 1.2, color = "darkgreen")
遗憾的是,scale_y_continuoius函数仅适用于坐标轴刻度,不适用于geom_text中的值。是否也可以在条形图中显示的值中获得千位分隔符?
您可以在绘制绘图之前更改您的 label
审美基础的列,如下所示:
library(scales)
df <- df %>%
mutate(label.pageviews = gsub("\,",".", scales::comma(pageviews)))
这基本上使用 scales
包中的 comma
函数来插入分隔符。由于您需要点而不是逗号,因此 gsub
部分将一个替换为另一个。
然后你只需要用新生成的列替换旧的 label
美学,然后应该得到这样的东西:
p + geom_bar(fill = "#00CC33", stat = "identity") +
labs(x="categories", y="pageviews") +
scale_y_continuous(labels=function(x) format(x, big.mark = ".", scientific = FALSE)) +
geom_text(aes(label=label.pageviews), size=4, vjust = 1.2, color = "darkgreen")
我有一个数据框,其中包含不同的评分标准和综合浏览量,如下例所示:
categories| pageviews
health | 700000
recipes | 1000000
diet | 500000
现在我用以下代码绘制它以获得条形图:
p <- ggplot(df, aes(reorder(pagePathLevel1, -pageviews), pageviews))
p + geom_bar(fill = "#00CC33", stat = "identity") +
labs(x="categories", y="pageviews") +
scale_y_continuous(labels=function(x) format(x, big.mark = ".", scientific = FALSE)) +
geom_text(aes(label=pageviews), size=4, vjust = 1.2, color = "darkgreen")
遗憾的是,scale_y_continuoius函数仅适用于坐标轴刻度,不适用于geom_text中的值。是否也可以在条形图中显示的值中获得千位分隔符?
您可以在绘制绘图之前更改您的 label
审美基础的列,如下所示:
library(scales)
df <- df %>%
mutate(label.pageviews = gsub("\,",".", scales::comma(pageviews)))
这基本上使用 scales
包中的 comma
函数来插入分隔符。由于您需要点而不是逗号,因此 gsub
部分将一个替换为另一个。
然后你只需要用新生成的列替换旧的 label
美学,然后应该得到这样的东西:
p + geom_bar(fill = "#00CC33", stat = "identity") +
labs(x="categories", y="pageviews") +
scale_y_continuous(labels=function(x) format(x, big.mark = ".", scientific = FALSE)) +
geom_text(aes(label=label.pageviews), size=4, vjust = 1.2, color = "darkgreen")