簡體   English   中英

更改ggplot中的x軸標簽

[英]Changing x-axis labels in ggplot

我有一個具有12 x值的條形圖。 使用此代碼,除了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

我已經生成了一些示例數據...希望我正確理解了這種情況。 這似乎可行,即使用指定的標簽在小節上的指定位置插入中斷。

library(tidyverse)
df <- tribble(~x, ~y, 
              'cat',10,
              'dog', 20,
              'rabbit', 30,
              'fox', 30)

df <- df %>% 
  mutate(x = factor(x))

df %>% ggplot(aes(x,y))+
  geom_bar(stat = 'identity') +
  scale_x_discrete(breaks = c('cat','fox'), labels = c('pig', 'hen'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM