簡體   English   中英

是否有可能使用 ggplot2 從數據框之外的這些數據制作箱線圖?

[英]Is it possibly to make a box plot from these data outside of a data frame, using ggplot2?

我將如何在 ggplot2 函數中使用這些向量,例如創建散點圖或箱線圖? 我想我需要將它們實現到數據框中,如果是這樣,我該怎么做?

> am_C <- c(56.44898,62.85714,53.91837,64.65306,74.28571,69.40816,60.79592,54.07576,59.87879,56.90909,69.39394,72.90909,77.36364,62.30303,59,54.46429,60.4,63.63571,70.82143,71.3,61.07143,74.62222,66.24444,67.46667,66.41481,67.7037,77.69259,64.81111)
> am_O <- c(65.26923,69.11111,70.88235,65.36364,65.75,66.8,72.72727,70.15385,69.58,70.71667,72.8,65.28571,65.875,77.4,72.64706,67.83333)

首先,我要指出的是,您的向量長度不同,因此,如果一個是 x,一個是 y,那么您將有一堆無法繪制。

如果你讓它們的長度相同,那就變得相當簡單了。

 library(ggplot2)
am_C <- c(56.44898,62.85714,53.91837,64.65306,74.28571,69.40816,60.79592,54.07576,59.87879,56.90909,69.39394,72.90909,77.36364,62.30303,0,0)
am_O <- c(65.26923,69.11111,70.88235,65.36364,65.75,66.8,72.72727,70.15385,69.58,70.71667,72.8,65.28571,65.875,77.4,72.64706,67.83333)
ggplot(data.frame(am_C,am_O),aes(x=am_C, y=am_O)) + geom_point()

如果這些不是 X 和 YI 將需要一些澄清。

正如@JonSpring 所提到的,根據兩個向量之間的長度差異,散點圖是不合適的,所以讓我們嘗試一個箱線圖:

箱線圖(使用圖)

首先,您可以通過以下方式快速前進:

boxplot(am_C, am_O, names = c("am_C","am_O"))

在此處輸入圖片說明

箱線圖(使用 ggplot2)

或者,您可以使用庫ggplot2制作美觀且高度個性化的箱線圖。 但是,您需要重新排列數據以適應ggplot2語法。 簡而言之,您應該有兩列,一列用於標簽,一列用於值。

library(ggplot2)
df <- data.frame(Value = c(am_C, am_O),
                 Variable = c(rep("am_C",length(am_C)),rep("am_O",length(am_O))))

ggplot(data =df, aes(x = Variable, y = Value)) +
  geom_boxplot()

在此處輸入圖片說明

一開始, ggplot2並不是很容易使用,但是你會得到它,你將無法沒有。 在這里,僅舉幾個可能的自定義示例:

# fill with color
ggplot(data =df, aes(x = Variable, y = Value, fill = Variable)) +
  geom_boxplot()

# customize color filling:
ggplot(data =df, aes(x = Variable, y = Value, fill = Variable)) +
  geom_boxplot() +
  scale_fill_manual(values = c("green", "orange"))

# add individual point on top of it:
ggplot(data =df, aes(x = Variable, y = Value)) +
  geom_boxplot() +
  geom_jitter(width = 0.2)

暫無
暫無

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

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