首页 > 解决方案 > 如何在具有 3 列的图中更改颜色?

问题描述

所以我有一个包含 3 列的数据集(notCrammed、小时数、总成绩)我正在绘制小时数和总成绩。notCrammed 只有“0”代表填满,“1”代表 notCrammed。我正在策划并试图改变那些挤满了人的颜色。例如,如果 80 人不补习,而 20 人补习。我想改变颜色,这样我就可以看到 80 个绿点和 20 个红点。或任何颜色来区分它们。

color <- 1
if(my.data$Studied<-1){
color <- 2
}
plot(my.data$Hours,my.data$Grade,xlab = "notCrammed",ylab = "Grade Scale",main = "Student Report",col =color)

标签: r

解决方案


使用@Qwethm 的基础数据集,您可以使用 ggplot 预设颜色。这也允许您使用简单的语言更改颜色。

set.seed(10)
my.data = data.frame("Hours" = sample(1:50, 10, replace = T),
                     "total grade" = sample(c(0,2,4,7,10,12), 10, replace = T),
                     "notCrammed" = rbinom(10, 1, prob = 0.5))

library(ggplot2)
library(viridis)
my.data$notCrammed <- as.factor(my.data$notCrammed) #Change to a factor so it's discrete output

cols <- c("0" = "darkgreen","1"="red")

ggplot()+
  geom_point(data=my.data,aes(x=Hours,y=total.grade,colour=notCrammed))+
  scale_colour_manual(
    values = cols,
    aesthetics = c("colour", "fill")
  )+
  xlab("notCrammed")+
  ylab("Grade Scale")+
  ggtitle("Student Report")

在此处输入图像描述


推荐阅读