R 重新调整ggplot中的水平轴

R 重新调整ggplot中的水平轴,r,ggplot2,geom-bar,R,Ggplot2,Geom Bar,我有一个简单的数据集,包含从0到1的值。当我绘制它时,水平轴自然是零。我希望此参考值为0.5,低于0.5的条形图应反转,颜色与低于此阈值的条形图不同 my.df <- data.frame(group=state.name[1:20],col1 = runif(20)) p <- ggplot(my.df, aes(x=group,y=col1)) + geom_bar(stat="identity")+ylim(0,0.5) my.df您试图传达的y变量距离为0.5,因此您需

我有一个简单的数据集,包含从0到1的值。当我绘制它时,水平轴自然是零。我希望此参考值为0.5,低于0.5的条形图应反转,颜色与低于此阈值的条形图不同

my.df <- data.frame(group=state.name[1:20],col1 = runif(20))

p <- ggplot(my.df, aes(x=group,y=col1)) +
 geom_bar(stat="identity")+ylim(0,0.5)

my.df您试图传达的y变量距离为0.5,因此您需要更改col1中的值以反映这一点

library(dplyr)
library(ggplot)
my.df %>% 
  mutate(col2 = col1-0.5) %>% 
  ggplot() +
  aes(x = group, y = col2, fill = col2 >=0) + 
  geom_bar(stat = 'identity') + 
  theme(legend.position = 'none', 
        axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) + 
  ylab('Col1 above 0.5 (AU)')


注意,您还可以使用aes(fill=col1>=0.5)
选项对条形图进行颜色编码,而不移动轴(如果col1包含百分比,这是我的建议)。

您尝试传达的y变量是距离0.5,因此您需要更改col1中的值以反映这一点

library(dplyr)
library(ggplot)
my.df %>% 
  mutate(col2 = col1-0.5) %>% 
  ggplot() +
  aes(x = group, y = col2, fill = col2 >=0) + 
  geom_bar(stat = 'identity') + 
  theme(legend.position = 'none', 
        axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1)) + 
  ylab('Col1 above 0.5 (AU)')

注意,您还可以使用aes(fill=col1>=0.5)选项对条形图进行颜色编码,而无需移动轴(如果col1包含百分比,这是我的建议)。

要基于的答案,您可以从col1变量中减去0.5,然后重命名y轴上的标签

df%ggplot(aes(重新排序(组,值),值-0.5))+geom_条(stat='identity')+
比例y离散(name='Value',
标签=c('0','0.5','1'),
限值=c(-0.5,0,0.5),
扩展=c(-0.55,0.55))+
xlab(‘状态’)+
主题(axis.text.x=元素\文本(角度=45,hjust=1))

要基于的答案,可以从col1变量中减去0.5,然后重命名y轴上的标签

df%ggplot(aes(重新排序(组,值),值-0.5))+geom_条(stat='identity')+
比例y离散(name='Value',
标签=c('0','0.5','1'),
限值=c(-0.5,0,0.5),
扩展=c(-0.55,0.55))+
xlab(‘状态’)+
主题(axis.text.x=元素\文本(角度=45,hjust=1))

我认为这个答案应该对你有用我认为这个答案应该对你有用