Как мне наложить частотный многоугольник поверх гистограммы в R?

Вот код, который я использовал в R (используя RGui 64-bit, R ver. 3.3.1) для построения гистограммы данных вместе с многоугольником частоты. Я не использую ggplot2. Как я могу наложить частотный многоугольник поверх гистограммы, чтобы мне не пришлось делать два отдельных графика? То есть я хочу построить гистограмму с наложенным на нее многоугольником частоты.

# declare your variables
data <- c(10, 7, 8, 4, 5, 6, 6, 9, 5, 6, 3, 8,
+ 4, 6, 10, 5, 9, 7, 6, 2, 6, 5, 4, 8, 7, 5, 6)

# find the range
range(data)

# establish a class width
class_width = seq(1, 11, by=2)
class_width

# create a frequency table
data.cut = cut(data, class_width, right=FALSE)
data.freq = table(data.cut)
cbind(data.freq)

# put both graphs together
par(mfrow=c(1,2))

# histogram of this data
hist(data, 
breaks=class_width, 
col="slategray3", 
border = "dodgerblue4",
right=FALSE,
xlab = "Scores", 
main = "Histogram of Quiz Data")

# create a frequency polygon for the birth weight data
plot(data.freq, type="b", 
xlab="Scores", 
ylab="Frequency",
add=TRUE,
main="A Frequency Polygon of Quiz")

1 ответ

Решение

Это наложит два графика. Я удалил дополнительный основной заголовок и ярлыки, так как они также будут накладываться, что выглядит грязно.

# declare your variables
data <- c(10, 7, 8, 4, 5, 6, 6, 9, 5, 6, 3, 8,
+ 4, 6, 10, 5, 9, 7, 6, 2, 6, 5, 4, 8, 7, 5, 6)

# find the range
range(data)

# establish a class width
class_width = seq(1, 11, by=2)
class_width

# create a frequency table
data.cut = cut(data, class_width, right=FALSE)
data.freq = table(data.cut)
cbind(data.freq)

# put both graphs together
par(mfrow=c(1,2))

# histogram of this data
hist(data, 
breaks=class_width, 
col="slategray3", 
border = "dodgerblue4",
right=FALSE,
xlab = "Scores", 
main = "Histogram of Quiz Data")

# this is key to the overlay
par(new=TRUE)

# create a frequency polygon for the birth weight data
plot(data.freq, type="b")
Другие вопросы по тегам