[英]Ggplot2 change the position of y axis values after removing gridlines
我想在沒有網格線的情況下在 ggplot2 中創建一個熱圖。 我使用 theme 函數和 panel.grid 參數刪除了它們,但它在 y 軸值和繪圖之間留下了空間:
我試圖使用 theme 函數的 axis.text 參數來縮小這個差距,但它使值不對齊:
在可重現的代碼下方:
library(ggplot2)
tmp<-data.frame(cbind(rep(c("Sun", "Sat", "Fri", "Thu", "Wed", "Tue", "Mon"), 24),
rep(0:23, 7),
runif(168, 0, 3)))
tmp$X1<-factor(tmp$X1, levels= c("Sun", "Sat", "Fri", "Thu", "Wed", "Tue", "Mon"))
tmp$X2<-as.numeric(tmp$X2)
tmp$X3<-as.numeric(tmp$X3)
ggplot(tmp, aes(X2, X1, fill=X3, label=round(X3,2))) +
geom_tile() +
theme_minimal() +
scale_fill_gradient(low="springgreen", high="darkgreen") +
scale_x_continuous(breaks=0:23) +
geom_text() +
theme(panel.grid.major.x = element_blank(),
panel.grid.major.y = element_blank(),
panel.grid.minor.x = element_blank(),
panel.grid.minor.y = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
#axis.text.y = element_text(hjust = 3.2),
legend.position = "none")
你想要那樣的東西嗎?
ggplot(tmp, aes(factor(X2 - 1), X1, fill = X3, label = round(X3, 2))) +
geom_tile() +
geom_text() +
scale_fill_gradient(low = "springgreen", high = "darkgreen") +
coord_fixed(.5) +
theme(
panel.grid.major.x = element_blank(),
panel.grid.major.y = element_blank(),
panel.grid.minor.x = element_blank(),
panel.grid.minor.y = element_blank(),
panel.background = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.ticks = element_blank(),
legend.position = "none"
)
y-lab 間距的問題是由於您的X2
var 是連續的。 所以geom_tile()
將瓷磚的中心定位在 1、2、3...23,瓷磚的寬度 == 1。第一個瓷磚的左側從 1 -.5 = 0.5 開始,這就是為什么-.5 和 .5 之間有一個空位(沒有中心為 0 的圖塊)。 將X2
轉換為因子,無需任何額外的調整即可修復它。
你可能想修復情節的邊緣,想。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.