2016-08-07 124 views
2

我有一个csv文件中约500个整数值的数据集,每个值在50-89之间。我试图在R中创建一个直方图,其中代表值50-65的条纹是青铜色,66-74银和75-89金。剧本我至今如下:如何绘制不同颜色的直方图R

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, 

现在我的图表(对不起,我是新,所以我没有10个代表处点) -

My Graph

我会为了履行颜色准则做前面解释?

注意 - 我以前发布过这个问题,但没有任何我的代码或我的数据集的参考。

+1

您可以通过[r-cookbook](http://www.cookbook-r.com/Graphs/Bar_and_line_graphs_(ggplot2)/) –

回答

4

您需要添加col参数在hist方法如下:

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")) 

见上面我执行后得到的图像:

enter image description here

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

3

在你前面的问题,您曾经提到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")) 

这是图中的样子现在:

enter image description here

虽然包括xlim = c(0,99)(这是不可见的附带的情节),我不知道你为什么要使用它。如果你希望你可以添加一个xlim参数+ xlim(0,99)

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

注意:您可以在geom_histogram中定义垃圾箱数量或垃圾箱宽度。请参阅this了解更多