When we want to visualize more than one summarized numeric variable over the category of another variable, we need to produce a stacked bar chart. In this case, each bar represents summary statistics of each variable. The different variables occupy different heights with various colors in that single bar.
To produce stacked bar charts, we will use the same summarized data that we created in the Creating bar charts recipe.
The command that produces the stacked bar chart is exactly the same as the simple bar chart. The only difference is that we need a new argument, which is stack=TRUE
:
barchart(disA+disB+disC~factor(age),data=dis_dat,stack=TRUE)
The first argument is the formula that specifies the variables to be displayed in the plot. The left-hand side indicates how many components there will be in each of the bars. The right-hand side indicates the grouping information. The stack=TRUE
argument makes sure that the bar plot will be stacked, which means that each of the variables will occupy a certain height in a single bar with specific colors.
The default implementation does not specify the title of the plot, and it also does not specify the x axis, y axis, and more importantly, it does not produce the legend key. Without the legend key, it is difficult to communicate the information contained in the plot. Here is the code that updates the initial bar chart:
barchart( disA+disB+disC~factor(age), data=dis_dat, auto.key=list(column=3), main="Mean incubation period comparison among different age group", xlab="Age group", ylab="Mean incubation period (weeks)",stack=TRUE)
In this new code snippet, auto.key
produces the legend key with three columns. The production of the chart title is specified by main
, x axis label is specified by xlab
, and y axis label is specified by ylab
. One important thing in this new code is the use of
within the text of the chart title; we use this
control to create a new line when the title is long. This breaks the text into two lines.
18.221.12.52