更改ggplot中的x轴标签

时间:2019-07-25 02:34:15

标签: r ggplot2

我有一个具有12个值的条形图。使用此代码,除了x轴标签外,我还可以获得所需的图。

p <- ggplot(data=df.mean, aes(x=stock_name, y=invest_amnt, fill=trend_id)) +
  geom_bar(stat="identity", position=position_dodge()) +

  geom_errorbar(aes(ymin=invest_amnt-ic, ymax=invest_amnt+ic), width=.2,
                 position=position_dodge(.9)) 


p + scale_fill_brewer(palette="Paired") + theme_minimal() +              

theme(text = element_text(size=12, hjust = 0.5, family="Times")) +

theme_stata() + scale_color_stata()

我不想自己在x轴上显示所有12个值,而是要自己确定标签,只显示4个。

我调整了这样的代码

p <- ggplot(data=df.mean, aes(x=stock_name, y=invest_amnt, fill=trend_id)) +
  geom_bar(stat="identity", position=position_dodge()) +

  geom_errorbar(aes(ymin=invest_amnt-ic, ymax=invest_amnt+ic), width=.2,
                 position=position_dodge(.9)) +

         scale_x_discrete( labels=c("UP\nDOWN", "DOWN\nUP", "STRAIGHT\nGAIN", "STRAIGHT\nLOSS")) +  
               scale_fill_discrete(name = "Trend", labels = c("negative", "flat", "positive")) 

p + scale_fill_brewer(palette="Paired") + theme_minimal() +              

theme(text = element_text(size=12, hjust = 0.5, family="Times")) +

theme_stata() + scale_color_stata()

不幸的是,我得到了4个标签,但还有8个NA。我希望我的4个标签均匀地分布在我的x轴上。由于标签是因素,因此我不知道如何在此处应用break

1 个答案:

答案 0 :(得分:0)

我已经生成了一些示例数据...希望我正确理解了这种情况。 这似乎可行,即使用指定的标签在小节上的指定位置插入中断点。

pip install tornado