5

我有一个公司列表,其中包括三个变量:成立年份、市值和公司名称(实际上是股票代码)。

我想按成立年份(X 轴)和市值(Y 轴)绘制它们,填充由供应商名称确定。

这样做:

 qplot(factor(Founded), Market.Cap, data = mcap, geom = "bar", fill = Vendor)

明白了,但 X 轴难以辨认(见下文)。我尝试输入 scale_x_discrete() 值(1900 - 2012 等),但没有运气。我如何告诉 ggplot2 不要显示实际值,而是显示我选择的频谱?

作为旁注,如果你能提醒我如何避免 Y 轴上的科学记数法,那就太好了。

在此处输入图像描述

4

2 回答 2

9

我希望这有帮助。如果旋转轴不起作用,那么您可以使用breaksand手动设置轴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

ggplot2

于 2013-01-20T21:28:15.897 回答
3

答案在这里

对于您的情况,我建议将 x 轴标签旋转 90 度:

+ theme(axis.text.x=element_text(angle=90, hjust=1))

并更改 y 轴符号:

+ scale_y_continuous(labels=comma)
于 2013-01-20T20:50:12.780 回答