R图表有关参数化的更多问题

时间:2018-04-16 14:39:43

标签: r ggplot2

我在R中构建了这个图:

library(ggplot2)

dataset <- data.frame(Riserva_Riv_Fine_Periodo = 1:10 * 10^6 + 1,
                      Anno = 1:10)

ggplot(data = dataset, 
            aes(x = Anno, 
                y = Riserva_Riv_Fine_Periodo)) + 
  geom_bar(stat = "identity", 
           width=0.8, 
           position="dodge") + 
  geom_text(aes( y = Riserva_Riv_Fine_Periodo,
            label = round(Riserva_Riv_Fine_Periodo, 0), 
                 angle=90, 
                 hjust=+1.2), 
            col="white", 
            size=4, position = position_dodge(0.9))

enter image description here

如您所见,我有2个问题:

  1. 栏中的数字被截断。
  2. y比例用这种格式写成&#34; 0e + 00&#34;
  3. 我想:

    1. 根据条的高度设置栏内部或外部的数字
    2. 以百万为单位设置y比例。

1 个答案:

答案 0 :(得分:0)

  1. 您可以使用ifelse语句根据y的值有条件地更改hjust参数
  2. 您可以使用scipen选项更改R表示小数的方式。
  3. 以下是一个例子:

    library(ggplot2)
    
    options(scipen=2)
    
    dataset <- data.frame(Riserva_Riv_Fine_Periodo = 1:10 * 10^6 + 1,
                          Anno = 1:10)
    
    ggplot(data = dataset, 
                aes(x = Anno, 
                    y = Riserva_Riv_Fine_Periodo)) + 
      geom_bar(stat = "identity", 
               width=0.8, 
               position="dodge") + 
      geom_text(aes( y = Riserva_Riv_Fine_Periodo,
                     label = round(Riserva_Riv_Fine_Periodo, 0), 
                     angle=90, 
                     hjust= ifelse(Riserva_Riv_Fine_Periodo < 3000000, -0.1,  1.2)), 
                col="red", 
                size=4, 
                position = position_dodge(0.9))
    

    enter image description here