0

I have a data frame mydata_2 and I'm in the process of obtaining histogram plots for each of the columns in the data frame excepting the first column. I was wondering how to generate a code that would get me histogram plots for the data in each the columns excepting the first column and save the output as .jpeg files in the working directory.

My starting point was the following:

 hist(mydata_2$age, main="Student age", xlab="age")

I understand that similar questions have been answered by others but I could not make complete sense of them. Thanks for your time.

pkg77x7
  • 925
  • 2
  • 7
  • 10

1 Answers1

1
library(ggplot2)
str(diamonds)
'data.frame':   53940 obs. of  10 variables:
 $ carat  : num  0.23 0.21 0.23 0.29 0.31 0.24 0.24 0.26 0.22 0.23 ...
 $ cut    : Ord.factor w/ 5 levels "Fair"<"Good"<..: 5 4 2 4 2 3 3 3 1 3 ...
 $ color  : Ord.factor w/ 7 levels "D"<"E"<"F"<"G"<..: 2 2 2 6 7 7 6 5 2 5 ...
 $ clarity: Ord.factor w/ 8 levels "I1"<"SI2"<"SI1"<..: 2 3 5 4 2 6 7 3 4 5 ...
 $ depth  : num  61.5 59.8 56.9 62.4 63.3 62.8 62.3 61.9 65.1 59.4 ...
 $ table  : num  55 61 65 58 58 57 57 55 61 61 ...
 $ price  : int  326 326 327 334 335 336 336 337 337 338 ...
 $ x      : num  3.95 3.89 4.05 4.2 4.34 3.94 3.95 4.07 3.87 4 ...
 $ y      : num  3.98 3.84 4.07 4.23 4.35 3.96 3.98 4.11 3.78 4.05 ...
 $ z      : num  2.43 2.31 2.31 2.63 2.75 2.48 2.47 2.53 2.49 2.39 ...  

Factor variables are removed as they make little sense in histogram

library(reshape)
d <- melt(diamonds[,-c(2:4)])
ggplot(d,aes(x = value)) +
facet_wrap(~variable,scales = "free_x") +
geom_histogram()
ggsave("plot.jpeg")

Histogram The graph gets stored in the default directory - query getwd() to know the path.

melt allows us to use the resulting grouping variables (called variable) to split the data into groups and plot a histogram for each one.Used scales = "free_x"because each of the variables has a markedly different range and scale.

Prasanna Nandakumar
  • 4,295
  • 34
  • 63