【问题标题】:How to plot a histogram with different colors in R如何在R中绘制具有不同颜色的直方图
【发布时间】:2016-12-13 02:55:18
【问题描述】:

我在一个 csv 文件中有一个包含大约 500 个整数值的数据集,每个值都在 50-89 之间。我正在尝试在 R 中创建一个直方图,其中代表值 50-65 的条形是青铜色、66-74 银色和 75-89 金色。我目前的脚本如下:

dat1 <- read.csv("test2.csv", header=F)$V1
hist(dat1, main="Distribution of Player Ratings", xlim = c(0,99), breaks=c(seq(40,99,5)))

下面是一个test2.csv的示例(非常简单)

69,
68,
67,
65,
65,
62,
59,
59,
54,

现在我的图表是:

为了满足前面解释的颜色准则,我需要做什么?

注意:我之前已经发布过这个问题,但没有任何代码或对我的数据集的引用。

【问题讨论】:

标签: r visualization data-visualization


【解决方案1】:

您需要在hist 方法中添加col 参数,如下所示:

t<- c(69,68,67,65,65,62,59,59,54)
hist(t, main="Distribution of Player Ratings",xlim = c(0,99), 
       breaks=c(seq(40,99,5)), col = c("blue", "red", "gray", "green"))

查看上面执行后得到的图像:

现在您可以根据需要替换颜色值(名称或十六进制值,如“#FFFF00”)。

【讨论】:

    【解决方案2】:

    在您之前的问题中,您提到了ggplot2,所以这里有一个ggplot2 的解决方案:

    首先模拟你的数据集:

    set.seed(123)
    df <- data.frame(X = sample(50:89, 500, replace = T))
    

    添加一个定义颜色标准的新变量:

    df$group = ifelse(df$X < 66, "50-65", ifelse(df$X < 75, "66-74", "75-89"))
    

    现在,加载 ggplot2 库以创建直方图

    library(ggplot2)
    
    ggplot(df, aes(X, fill = group)) + geom_histogram()
    

    要提供自定义颜色,请使用scale_fill_manual

    ggplot(df, aes(X, fill = group)) + geom_histogram() +
        scale_fill_manual(values = c("50-65" = "#CD7F32",
                                     "66-74" = "#C0C0C0",
                                     "75-89" = "gold"))
    

    现在的图是这样的:

    虽然你包含了xlim = c(0,99)(在附图中不可见),但我不知道你为什么要使用它。如果您愿意,可以使用+ xlim(0,99) 添加xlim 参数。

    要了解有关ggplot2 的更多信息,请查看here

    注意:您可以在geom_histogram 中定义bin 的数量或binwidth。更多信息请参考this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      • 2020-08-30
      相关资源
      最近更新 更多