【问题标题】:Change the scale of x axis in ggplot更改ggplot中x轴的比例
【发布时间】:2020-08-27 13:27:08
【问题描述】:

我有一个 ggplot 条,不知道如何更改 x 轴的比例。目前它看起来如下图所示。但是,我想重新排列 x 轴的比例,以便 21% 条高于 7% 条。我怎样才能得到 % 到轴?提前致谢!

df= data.frame("number" = c(7,21), "name" = c("x","y"))
df
ggplot(df, aes(x=name, y=number)) + 
  geom_bar(stat="identity", fill = "blue") + xlab("Title") + ylab("Title") + 
  ggtitle("Title") 

【问题讨论】:

  • 你能发布你的代码吗?目前尚不清楚为什么 7% 更高,所以很难帮助您更改它
  • 我猜它正在将这些值作为字符串读取,如果您将该列转换为数字并使用 ggplot 将% 添加到轴标签上,它将修复您的 Y 轴上的问题
  • 我在上面添加了一些代码。我使用了“百分比”函数,这就是我得到百分比数字的原因。我会用数字试试。我怎样才能得到 % 到轴?

标签: r ggplot2


【解决方案1】:

正如@sconfluentus 所指出的,我能够复制原始情节的唯一方法是让 7% 和 21% 成为字符串。另外,不需要引用数据框列名。

df= data.frame(number = c('7%','21%'), name = c("x","y"))
 df
 ggplot(df, aes(x=name, y=number)) + 
   geom_bar(stat="identity", fill = "blue") + xlab("Title") + ylab("Title") + 
   ggtitle("Title")

将数字更改为 c(0.07, 0.21) 并添加,如 @Mohanasundaram 所述,scale_y_continuous(labels = scales::percent) 纠正了这种情况:

为了迂腐使用breaks = c(0.07, 0.21) 会创建几乎完全相同的副本。参见这里。3 希望这会有所帮助。

library(ggplot2)
library(scales)
df= data.frame(number = c(0.07,0.21), name = c("KG","MS"))
df
ggplot(df, aes(x=name, y=number)) + 
  geom_bar(stat="identity", fill = "blue") + xlab("Title") + ylab("Title") + 
  ggtitle("Title") + scale_y_continuous(labels = scales::percent,  breaks = c(.07, .21)))

【讨论】:

    【解决方案2】:

    使用prop.table 函数在几何图中输入 y 变量。

    ggplot(df, aes(x=name, y=100*prop.table(number))) + 
      geom_bar(stat="identity", fill = "blue") + 
      xlab("Stichprobe") + ylab("Paketmenge absolut") + 
      ggtitle("Menge total")  
    

    如果你想在 y 轴上有字符,%,你可以在图中添加scale_y_continuous,如下所示:

    library(scales)
    
    ggplot(df, aes(x=name, y=prop.table(number))) + 
      geom_bar(stat="identity", fill = "blue") + 
      xlab("Stichprobe") + ylab("Paketmenge absolut") + 
      ggtitle("Menge total") + 
      scale_y_continuous(labels=percent)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 2012-07-19
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多