簡體   English   中英

x軸上具有類的列名稱的散點圖

[英]Scatter plot with column names on x-axis with classes

我想制作一個散點圖,其中x軸是離散的(一周中的一天),而y軸是連續的(值),以及一個為每個數據點賦予顏色的類指示符。

與此類似:將列名稱繪制為R中的x軸

但是我不想使用數據中的所有列,而顏色是基於我不希望看到的觀測值。

示例數據:

DAT = data.frame(
  person = c(1:5),
  Mon = c(100, 98, 95, 99, 93),
  Tues = c(95, 88, 90, 91, 87),
  Wed = c(85, 80, 86, 81, 80),
  Thurs = c(84, 80, 77, 75, 74),
  Fri = c(66, 50, 20, 0, 72),
  Score = c("Y","Y","N","N","N")
)

ggplot(DAT, aes(x = c(Mon, Tues, Wed, Thurs, Fri), y = values, color = Score)) + geom_point()

我的try / pesuedo ggplot代碼無法正常工作,但希望能對我要完成的工作有所了解。

我試圖將Mon-Fri設為數字(1,2,3,4,5),以便將其作為我的x坐標,將值作為y坐標,但這意味着行數是5倍。

有任何想法嗎?

第一:您的數據是“寬”的(天為列)。 最好將其設置為“長”(一列為幾天,另一列為值)。

然后:您需要訂購日期-將變量設為一個因子並設置水平。

tidyr::gather()使數據變長, dplyr::mutate對日期進行排序。

library(dplyr)
library(tidyr)
library(ggplot2)

DAT %>% 
  gather(Day, Value, -person, -Score) %>% 
  mutate(Day = factor(Day, levels = c("Mon", "Tues", "Wed", "Thurs", "Fri"))) %>%
  ggplot(aes(Day, Value)) + 
    geom_point(aes(color = Score)) 

在此處輸入圖片說明

您可以融合數據,然后繪制:

library(ggplot2)
library(reshape2)

DAT = data.frame(
  person = c(1:5),
  Mon = c(100, 98, 95, 99, 93),
  Tues = c(95, 88, 90, 91, 87),
  Wed = c(85, 80, 86, 81, 80),
  Thurs = c(84, 80, 77, 75, 74),
  Fri = c(66, 50, 20, 0, 72),
  Score = c("Y","Y","N","N","N")
)

DAT.melt = melt(DAT,id=c("person","Score"))

ggplot(DAT.melt, aes(x = variable, y = value, color = Score)) + geom_point()

暫無
暫無

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

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