簡體   English   中英

如何使用ggplot2繪制表格

[英]How to draw a table using ggplot2

我有一個西甲足球比賽的數據框,我想制作一個表格,其中每一行和每一列都是一個球隊名稱,每個圖塊都顯示了兩支球隊之間的比賽結果

我已經嘗試了很多使用geom_tileggplot2以多種不同的方式,但我最接近的是下面的代碼

library(dplyr)
library(engsoccerdata)
spain = as.data.frame(spain)
library(ggplot2)
game1 = filter(spain, Season == "2012")
ggplot(game1, aes(home, reorder(visitor,desc(visitor)), fill = FT)) + 
  geom_tile(color="white", size=1.5, stat="identity", height=1, width=1) + 
  scale_fill_brewer(palette = rep(c("blue","white"),30)) +
  geom_text(data=game1, aes(home, visitor, label = FT), size=rel(3)) +
  scale_x_discrete(position="top") + scale_y_discrete(expand = c(0, 0)) + 
  xlab("Home") + ylab("Visitor") +
  ggtitle("Laliga 2012")

我需要用奇怪的顏色為行着色(奇數行白色,偶數行藍色)此外,我希望團隊名稱都在瓷磚內,我希望我的桌子看起來像這里的第一張照片但帶有條紋

任何人都可以幫助我修改我的代碼嗎?

您可以通過為填充指定一個新因子來更改行顏色。 考慮例如這個

fillframe = as.numeric(reorder(game1$visitor,desc(game1$visitor)))
fillframe = as.factor(ifelse(fillframe %% 2 == 0, 1, 0))

ggplot(game1, aes(home, reorder(visitor,desc(visitor)), fill = fillframe)) + 
  geom_tile(color="white", size=1.5, stat="identity", height=1, width=1) + 
  scale_fill_manual(values = c("white", "lightblue")) +
  geom_text(data=game1, aes(home, visitor, label = FT), size=rel(3)) +
  scale_x_discrete(position="top") + scale_y_discrete(expand = c(0, 0)) + 
  xlab("Home") + ylab("Visitor") +
  ggtitle("Laliga 2012") +
  theme(legend.position = "None",
        axis.text.x = element_text(angle = 315))

在此處輸入圖片說明

為了在磁貼中包含軸標簽,您必須擴展軸(因為它是分類的,再次通過指定其他因素),想想這個- 但是你最好只使用 Rmarkdown 或 HTML 左右

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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