【问题标题】:How do I adjust the y-axis scale when drawing with ggplot2?使用ggplot2绘图时如何调整y轴刻度?
【发布时间】:2022-11-18 16:14:52
【问题描述】:

代码提供了ggplot绘制所需的数据和函数,但是绘制出来的条形图y轴不是等距的,看得我一头雾水。请学者解答。

col1 <- c('SO','MO','EO','YO','RO')
col2 <- c('J','J','J','J','J',
          'F','F','F','F','F',
          'M','M','M','M','M',
          'G','G','G','G','G')
col3 <- c('0.92966','0.94522','0.93311','0.995222',
          '0.966463','0.975725','0.976464','0.9635321',
          '0.980223','0.9124456','0.991678','0.973444',
          '0.910789','0.922','0.993444','0.956555',
          '0.923132','0.987222','0.900556','0.932228')
data <- data.frame(col1,col2,col3)
library(ggplot2)
ggplot(data, aes(x=col1, y=col3,fill=col2)) + 
  labs(x = "col1", y = "col3")+
  geom_bar(stat = 'identity', position=position_dodge())+
  scale_fill_discrete(
    breaks = c("J","F","M",'G'))+
  theme(legend.title = element_text( size=12, face="bold"),
        legend.text = element_text(size =12),
        axis.title.x = element_text(size = 13, face="bold"),
        axis.title.y = element_text(size = 13, face="bold"),
        axis.text.x = element_text(size = 12, face="bold"),
        axis.text.y = element_text(size = 12,face="bold"))+
  scale_x_discrete(limits = c('SO','MO','EO','YO','RO'))

如何绘制y轴范围为0.9-1等间距的条形图?

【问题讨论】:

  • 您的 col3 是字符串,而不是数字(它们在引号中)。试试data &lt;- data.frame(col1,col2, col3 = as.double(col3))
  • 此外,使用不从 0 开始的 y 轴范围可能会使条形图产生误导 - 是否有特定原因需要该范围?
  • 如果Y轴范围定位在0-1,画面太丑,组间差距不明显。所以你想把范围调整到 0.9-1。

标签: r ggplot2 yaxis


【解决方案1】:

首先你必须重新定义col3为数字变量

data$col3 <- as.numeric(data$col3)

如果你想在 y 轴上使用其他标记,你可以使用

scale_y_continuous(breaks = seq(0, 1, 0.1))

得到这个表示:

【讨论】:

    猜你喜欢
    • 2017-07-18
    • 1970-01-01
    • 2020-06-06
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 2012-05-08
    • 1970-01-01
    相关资源
    最近更新 更多