【问题标题】:Overflowing X axis (ggplot2)溢出 X 轴 (ggplot2)
【发布时间】:2013-01-03 22:22:12
【问题描述】:

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

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

这样做:

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

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

顺便说一句,如果你能提醒我如何避免 Y 轴上的科学记数法,那就太好了。

【问题讨论】:

  • 您是否考虑过旋转 x 轴标签?例如,+ theme(axis.text.x = element_text(angle = 90, hjust = 1))(如 here 所示)
  • @DavidRobinson:我没有,但如果我无法使更宽的轴标签工作,这是一个有用的备份计划

标签: r ggplot2


【解决方案1】:

我希望这会有所帮助。如果旋转轴不起作用,那么您可以使用scale_x_continuous 中的breakslabels 手动设置轴的中断和标签,如下所示:

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

【讨论】:

    【解决方案2】:

    找到答案here

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

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

    并更改 y 轴表示法:

    + scale_y_continuous(labels=comma)
    

    【讨论】:

      猜你喜欢
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 2021-07-28
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多