2017-10-04 325 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)