【发布时间】: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 <- data.frame(col1,col2, col3 = as.double(col3)) -
此外,使用不从 0 开始的 y 轴范围可能会使条形图产生误导 - 是否有特定原因需要该范围?
-
如果Y轴范围定位在0-1,画面太丑,组间差距不明显。所以你想把范围调整到 0.9-1。