2017-10-04 327 views
0

我正在使用热图在ggplot2中为不同数据集绘制图形。问题是:每次绘制热图时,列宽都会有所不同,因此图形看起来不一致。 enter image description here如何调整R中直方图列的宽度?

正如您在此处看到的,彩色列的宽度不同。

这是我使用的代码:

p <- ggplot(data, aes(x=Codon,y=ID,fill=state)) 
q <- p + geom_raster() 

这是样本数据:

structure(list(ID = c("281154_491", "281154_491", "281154_491", 
"281154_491", "281154_491", "281154_491"), Codon = c(18L, 28L, 
79L, 81L, 84L, 86L), state = c("possible_adapted", "nonadapted", 
"nonadapted", "nonadapted", "nonadapted", "nonadapted")), .Names = 
c("ID", "Codon", "state"), row.names = c(NA, 6L), class = "data.frame") 

感谢

+0

你能提供一个数据样本吗?我的猜测是你应该尝试为每个图表指定'scale_x_continuous'和设置'breaks'和'labels'。 – Mako212

+0

谢谢@ Mako212我添加了一个数据样本。我尝试添加 scale_x_continuous(breaks = c(0,100,200,300)),但这只改变了x轴标签,并未调整每个小节的比例/宽度。 –

+1

请参阅[这里](https://stackoverflow.com/a/5963610/4421870)了解如何创建一个可重复的示例 – Mako212

回答

0

,你可以尝试使用coord_fixed()并指定了相同的比例你所有的地块:

> p <- ggplot(data, aes(x=Codon,y=ID,fill=state)) 
> q <- p + geom_raster() + coord_fixed(ratio = 20)