R语言中的直方图和密度图画法

原创 AI写代码的DNA AI写代码的DNA 2019-05-15

  1. 单一直方图 这是最简单的一种


a1 <- rnorm(400,20,3.5)
hist(a1, col = rgb(1,0,0,0.2))

R语言中的直方图和密度图画法_JAVA

2. 在直方图中添加密度分布曲线


hist(a1, col = rgb(1,0,0,0.2),freq = F)
lines(density(a1), col = "red")

R语言中的直方图和密度图画法_JAVA_02

3. 多个直方图

当我们添加第二个图的时候,不要忘记使用add = T.

a1 <- rnorm(400,20,3.5)
a2 <- rnorm(400,29,2.5)

hist(a1, col = rgb(1,0,0,0.2), freq = F, xlim = c(10,40), ylim = c(0,0.2))
lines(density(a1),col = "red")
hist(a2, col = rgb(0,1,0,0.2), freq = F, add = T)
lines(density(a2),col = "green")

R语言中的直方图和密度图画法_JAVA_03

4.在ggplot2中画直方图


.


R语言中的直方图和密度图画法_JAVA_04

5. ggplot2直方图中加入密度分布线


library(ggplot2)
df <- data.frame(a1 = rnorm(400,20,3.5), a2 = rnorm(400,29,2.5))
ggplot(data = df) + geom_histogram(aes(x = a1, y = ..density..),fill = "red", alpha = 0.2) +
 geom_density(aes(x= a1, y = ..density..), col = "red") +
 geom_histogram(aes(x=a2, y = ..density..),fill = "green", alpha = 0.2) +
 geom_density(aes(x=a2, y = ..density..), col = "green")


R语言中的直方图和密度图画法_JAVA_05

6.不同分组的直方图 我们在数据中加入几个分组变量。


library(ggplot2)
library(tidyr)
male <- rnorm(400,20,3.5)
female <- rnorm(400,29,2.5)

df <- data.frame("Ocupation" = c(rep("doctor",200), rep("lawyer",200)),
                "Education" = rep(c(rep("high",100),rep("low",100)),2),
                male,female)

df1 <- gather(df, male,female, key = "Gender", value = "income")

ggplot(df1, aes(x = income)) +
 geom_histogram(data = subset(df1, Gender == "male"), aes(y = ..density..,fill = "red", alpha = 0.3)) +
 geom_density(data = subset(df1, Gender == "male"), aes(y = ..density..), col = "red") +
 geom_histogram(data = subset(df1, Gender == "female"),aes(y = ..density.., fill = "green", alpha = 0.3)) +
 geom_density(data = subset(df1, Gender == "female"), aes(y = ..density..), col = "green") +
 facet_grid(Ocupation ~ Education) +
 scale_fill_manual(name="Gender",values= alpha(c("green", "red"), 0.2),labels=c("male","female")) +  
 scale_alpha(guide = 'none')

(提示:代码块可左右滑动)

R语言中的直方图和密度图画法_JAVA_06


【欢迎转发分享,转载请注明出处】



R语言中的直方图和密度图画法_JAVA_07