简体   繁体   中英

How to plot Multiple variables (i.e. Categories) in a Bar graph in ggplot2 in R

I am trying to plot a Bar graph for particular data set. The issue which i am facing is I am not able to understand how to use Multiple variables in the Bar graph. The data set which I am using is of this structure.

Source_Data <-
data.frame(
key = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
Product_Name = c(
  "Table",
  "Table",
  "Chair",
  "Table",
  "Bed",
  "Bed",
  "Sofa",
  "Chair",
  "Sofa"
),
Product_desc = c("XX", "XXXX", "YY", "X", "Z", "ZZZ", "A", "Y", "A"),
Cost = c(1, 2, 3, 4, 2, 3, 4, 5, 6)
)

I am able to plot the Bar graph with the Cost in Y axis and key in x axis with Product_desc as each categories. I used the below code to do it.

ggplot(Source_Data, aes (key, Cost, fill = Product_desc)) + 
  geom_bar(stat = "identity", position = position_dodge()) + 
  scale_x_continuous(breaks = seq(2014, 2018, 2)) +
  scale_fill_brewer(palette = "Paired")

But I want to use Product name also in the graph to be displayed. The structure of data set is in such a manner.

Key --> Product_Name --> Product_desc and its corresponding cost.

This is an example from Excel.

在此处输入图片说明

I am sorry if that image was confusing. If there are any other suggestions to display the data please share it.

You can achieve something similar to the example from Excel using facets and some options.

Source_Data %>% 
  ggplot(aes(Product_Name, Cost)) + 
  geom_col(aes(fill = Product_desc), position = position_dodge(preserve = "single")) + 
  facet_wrap(~key, scales = "free_x", strip.position = "bottom") +
  theme(strip.placement = "outside") + 
  theme_bw()

Result:

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM