R 如何强制x轴记号显示在热图中条形图的末尾?

R 如何强制x轴记号显示在热图中条形图的末尾?,r,ggplot2,R,Ggplot2,我用ggplot2创建了一个简单的热图,但我需要强制x轴记号显示在x变量的末尾,而不是其中心。例如,我希望1出现在1.5现在所在的位置。我相信在R基地做的热图可以做到这一点 library(car) #initialize libraries library(ggplot2) #initialize libraries library(reshape) df=read.table(text= "x y fill 1 1 B 2 1 A 3 1 B 1 2 A 2 2 C 3 2 A ",

我用ggplot2创建了一个简单的热图,但我需要强制x轴记号显示在x变量的末尾,而不是其中心。例如,我希望1出现在1.5现在所在的位置。我相信在R基地做的热图可以做到这一点

library(car) #initialize libraries
library(ggplot2)  #initialize libraries
library(reshape)

df=read.table(text= "x  y  fill
1 1 B
2 1 A
3 1 B
1 2 A
2 2 C
3 2 A
",  header=TRUE, sep=""  )

#plot data
qplot(x=x, y=y, 
      fill=fill, 
      data=df, 
      geom="tile")+  
      scale_x_continuous(breaks=seq(1:3) ) 

其想法是创建一个简单的热图,如下所示:

此图中的记号位于条形图的末端,而不是其中心

这是怎么回事

object = qplot(x=x, y=y, 
      fill=fill, 
      data=df, 
      geom="tile")+  
      scale_x_continuous(breaks=seq(1:3))

object + scale_x_continuous(breaks=seq(.5,3.5,1), labels=0:3)

geom_瓷砖将每块瓷砖置于给定坐标的中心。因此,您将期望它提供的输出

因此,如果给ggplot每个单元格的中心(而不是右上角坐标),它将起作用

ggplot(df, aes(x = x-0.5, y = y-0.5, fill = fill)) + 
  geom_tile() + 
  scale_x_continuous(expand = c(0,0), breaks = 0:3) + 
  scale_y_continuous(expand = c(0,0), breaks = 0:3) + 
  ylab('y') + 
  xlab('x')
或者使用qplot

qplot(data = df, x= x-0.5, y = y-0.5, fill = fill, geom = 'tile')  + 
   scale_x_continuous(expand = c(0,0), breaks = 0:3) + 
   scale_y_continuous(expand = c(0,0), breaks = 0:3) + 
   ylab('y') + 
   xlab('x')

@SandyMuspratt抓得好。谢谢谢谢我有点希望有一个不调整x比例的选项,但我可能不太了解热图的工作方式。谢谢你的帮助你不调整x刻度是什么意思?与从0开始不同,您希望从正确的值开始,即0.5?@MaxC如果您希望第一个记号从0.5开始,请尝试此操作:对象+比例x_连续(breaks=seq(.5,3.5,1),labels=seq(.5,3.5,1))