簡體   English   中英

Ggplot2 在刪除網格線后更改 y 軸值的位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM