2

我想转换 ggplot2 轴标签的指数符号并应用转换。labels=commma 给了我常规的非指数数字,但我想添加一个转换,以便 y 轴刻度为数千,而不是数百万。

library(ggplot2)
library(scales)
fy <- c("FY09 Q4", "FY09 Q3", "FY09 Q2", "FY09 Q1")
views <- c(15881100,  8888000, 24168000, 17611000)
df <- data.frame(FY=fy, views=views)
g <- ggplot(df, aes(x=FY, y=views))
g <- g + geom_bar(stat="identity")
g <- g + scale_y_continuous(labels = comma)
print(g)
4

1 回答 1

4

你的问题不清楚,但有几种方法可以做到这一点。我不会费心处理休息时间,我会转换数据或增加数据,以便休息时间自行处理。也就是说,我会保持休息和数据一致。

截屏

library(ggplot2)
library(scales)
df <- data.frame(FY = c("FY09 Q4", "FY09 Q3", "FY09 Q2", "FY09 Q1"),
                 views = c(15881100,  8888000, 24168000, 17611000))
df$views.k <- df$views/1000

# Transform y in the ggplot call...
g <- ggplot(df, aes(x = FY, y = views/1000)) +
    geom_bar(stat = "identity") +
    scale_y_continuous(labels = comma)
print(g)

# ...or just use views.k
g <- ggplot(df, aes(x = FY, y = views.k)) +
    geom_bar(stat="identity") +
    scale_y_continuous(labels = comma)
print(g)
于 2013-10-22T23:59:50.073 回答