簡體   English   中英

如何在R中繪制具有不同顏色的直方圖

[英]How to plot a histogram with different colors in R

我在一個 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,

現在我的圖表是:

我的圖表

為了滿足前面解釋的顏色准則,我必須做什么?

注意:我之前發布過這個問題,但沒有我的任何代碼或對我的數據集的引用。

您需要在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”)。

在你之前的問題中,你提到了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更多信息,請查看此處

注意:您可以在geom_histogram定義 bin 的數量或geom_histogram 參考這個了解更多

暫無
暫無

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

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