barchart object
Creation of a barchart object that can be inserted in a 'Microsoft' document.
Bar charts illustrate comparisons among individual items. In a bar chart, the categories are typically organized along the vertical axis, and the values along the horizontal axis.
Consider using a bar chart when:
The axis labels are long.
The values that are shown are durations.
ms_barchart(data, x, y, group = NULL, labels = NULL)
data |
a data.frame |
x |
x colname |
y |
y colname |
group |
grouping colname used to split data into series. Optional. |
labels |
colnames of columns to be used as labels into series. Optional. If more than a name, only the first one will be used as label, but all labels (transposed if a group is used) will be available in the Excel file associated with the chart. |
Other 'Office' chart objects:
ms_areachart()
,
ms_linechart()
,
ms_scatterchart()
library(officer) library(mschart) library(officer) # example chart 01 ------- chart_01 <- ms_barchart( data = browser_data, x = "browser", y = "value", group = "serie" ) chart_01 <- chart_settings( x = chart_01, dir = "vertical", grouping = "clustered", gap_width = 50 ) chart_01 <- chart_ax_x( x = chart_01, cross_between = "between", major_tick_mark = "out" ) chart_01 <- chart_ax_y( x = chart_01, cross_between = "midCat", major_tick_mark = "in" ) # example chart 02 ------- dat <- data.frame( Species = factor(c("setosa", "versicolor", "virginica"), levels = c("setosa", "versicolor", "virginica")), mean = c(5.006, 5.936, 6.588) ) chart_02 <- ms_barchart(data = dat, x = "Species", y = "mean") chart_02 <- chart_settings(x = chart_02, dir = "horizontal") chart_02 <- chart_theme(x = chart_02, title_x_rot = 270, title_y_rot = 0) # example chart 03 ------- mytheme <- mschart_theme( axis_title_x = fp_text(color = "gray", font.size = 20, bold = TRUE), axis_title_y = fp_text(color = "gray", font.size = 20, italic = TRUE), grid_major_line_y = fp_border(width = 1, color = "wheat"), axis_ticks_y = fp_border(width = 1, color = "gray") ) chart_03 <- ms_barchart( data = browser_data, x = "browser", y = "value", group = "serie" ) chart_03 <- chart_settings(chart_03, grouping = "stacked", gap_width = 150, overlap = 100 ) chart_03 <- chart_ax_x(chart_03, cross_between = "between", major_tick_mark = "out", minor_tick_mark = "none" ) chart_03 <- chart_ax_y(chart_03, num_fmt = "0.00", minor_tick_mark = "none" ) chart_03 <- set_theme(chart_03, mytheme) chart_03 <- chart_labels(x = chart_03, title = "Things in percent") chart_03 <- chart_data_labels(chart_03, position = "ctr", show_val = TRUE ) chart_03 <- chart_labels_text(chart_03, fp_text(color = "white", bold = TRUE, font.size = 9)) # example chart 04 ------- dat_groups <- data.frame( cut = c("Fair","Fair","Fair","Fair","Fair", "Fair","Fair","Fair","Good","Good","Good","Good","Good", "Good","Good","Good","Very Good","Very Good","Very Good", "Very Good","Very Good","Very Good","Very Good","Very Good", "Premium","Premium","Premium","Premium","Premium", "Premium","Premium","Premium","Ideal","Ideal","Ideal","Ideal", "Ideal","Ideal","Ideal","Ideal"), clarity = c("I1","SI2","SI1","VS2","VS1","VVS2", "VVS1","IF","I1","SI2","SI1","VS2","VS1","VVS2","VVS1", "IF","I1","SI2","SI1","VS2","VS1","VVS2","VVS1","IF", "I1","SI2","SI1","VS2","VS1","VVS2","VVS1","IF","I1", "SI2","SI1","VS2","VS1","VVS2","VVS1","IF"), carat = c(1.065,1.01,0.98,0.9,0.77,0.7,0.7, 0.47,1.07,1,0.79,0.82,0.7,0.505,0.4,0.46,1.145,1.01, 0.77,0.71,0.7,0.4,0.36,0.495,1.11,1.04,0.9,0.72,0.7, 0.455,0.4,0.36,1.13,1,0.71,0.53,0.53,0.44,0.4,0.34), n = c(210L,466L,408L,261L,170L,69L,17L,9L, 96L,1081L,1560L,978L,648L,286L,186L,71L,84L,2100L, 3240L,2591L,1775L,1235L,789L,268L,205L,2949L,3575L,3357L, 1989L,870L,616L,230L,146L,2598L,4282L,5071L,3589L, 2606L,2047L,1212L) ) dat_groups$label <- sprintf( "carat median is %.01f", dat_groups$carat ) dat_groups text_prop <- fp_text(font.size = 11, color = "gray") chrt <- ms_barchart( data = dat_groups, x = "cut", labels = "label", y = "n", group = "clarity" ) chrt <- chart_settings(chrt, grouping = "clustered", dir = "horizontal", gap_width = 0 ) chrt <- chart_data_labels(chrt, position = "outEnd") chrt <- chart_labels_text(chrt, text_prop) chrt <- chart_theme(chrt, title_x_rot = 270, title_y_rot = 0) # example chart 05 ------- dat_no_group <- data.frame( stringsAsFactors = FALSE, cut = c("Fair", "Good", "Very Good", "Premium", "Ideal"), carat = c(1, 0.82, 0.71, 0.86, 0.54), n = c(1610L, 4906L, 12082L, 13791L, 21551L), label = c("carat median is 1.0", "carat median is 0.8","carat median is 0.7", "carat median is 0.9","carat median is 0.5") ) chrt <- ms_barchart( data = dat_no_group, x = "cut", labels = "label", y = "n" ) chrt <- chart_settings(chrt, grouping = "clustered") chrt <- chart_data_labels(chrt, position = "outEnd") chrt <- chart_labels_text(chrt, text_prop)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.