我有一个公司列表,其中包括三个变量:创立年份,市值和公司名称(实际上,股票代码)。
我想按年份(X轴)和市值(Y轴)绘制它们,填充由供应商名称确定。
这样做:
qplot(factor(Founded), Market.Cap, data = mcap, geom = "bar", fill = Vendor)
得到我,但X轴难以辨认(见下文)。我试图提供scale_x_discrete()值(1900 - 2012等),但没有运气。我如何告诉ggplot2不显示实际值,而是显示我选择的频谱?
作为旁注,如果你能提醒我如何避免Y轴上的科学记数法,那很好。
答案 0 :(得分:9)
我希望这会有所帮助。如果旋转轴不起作用,则可以使用breaks
中的labels
和scale_x_continuous
手动设置轴的断点和标签,如下所示:
require(ggplot2)
# dummy data
set.seed(45)
len <- 50
df <- data.frame(years = factor(seq(1901, 1950, length.out = len)),
values = 1e6 * runif(len), group=factor(rep(1:5, each=len/5)))
p <- ggplot(data = df, aes(x = years, fill=group)) + geom_bar(aes(weight = values))
require(scales) # for removing scientific notation
p <- p + scale_y_continuous(labels = comma)
# manually generate breaks/labels
labels <- seq(1901, 2000, length.out=10)
# and set breaks and labels
p <- p + scale_x_discrete(breaks=labels, labels=as.character(labels))
p
答案 1 :(得分:3)
找到答案here
对于您的情况,我建议将x轴标签旋转90度:
+ theme(axis.text.x=element_text(angle=90, hjust=1))
并更改y轴表示法:
+ scale_y_continuous(labels=comma)