R - Pareto Chart - GeeksforGeeks

10 May, 2020
Pareto chart is a combination of a bar chart and a line chart used for visualization.In Pareto charts, the right vertical axis is used for cumulative frequency while the left vertical axis represents frequency. They basically use the Pareto principle which says that 80% of effects are produced from 20% of causes of systems.
Here, we have a bar chart that indicates the frequency of occurrence of the event in different categories in decreasing order (from left to right), and an overlaid line chart indicates the cumulative percentage of occurrences.
Syntax:pareto.chart(x, ylab = “Frequency”, ylab2 = “Cumulative Percentage”, xlab, cumperc = seq(0, 100, by = 25), ylim, main, col = heat.colors(length(x)))
Parameters:x: a vector of values. names(x) are used for labelling the bars.ylab: a string specifying the label for the y-axis.ylab2: a string specifying the label for the second y-axis on the right side.xlab: a string specifying the label for the x-axis.cumperc: a vector of percentage values to be used as tickmarks for the second y-axis on the right side.ylim: a numeric vector specifying the limits for the y-axis.main: a string specifying the main title to appear on the plot.col: a value for the color, a vector of colors, or a palette for the bars. See the help for colors and palette.
Following are the steps that are required for plotting Pareto Chart:
A vector (defect <- c(Values...)) is taken which holds the values of counts of different categories.
A vector (names(defect) <- c(Values...)) is taken which holds the string values specifyingnames of different categories.
This vector “defect” is plot using pareto.chart().
Example 1:
# x axis numbersdefect <- c(27, 789, 9, 65, 12, 109, 30, 15, 45, 621)  # x axis titlesnames(defect) <- c("Too noisy", "Overpriced", "Food not fresh",                    "Food is tasteless", "Unfriendly staff",                   "Wait time", "Not clean", "Food is too salty",                    "No atmosphere", "Small portions")   pareto.chart(defect, xlab = "Categories", # x-axis label                     ylab="Frequency",  # label y left  # colors of the chart             col=heat.colors(length(defect)),   # ranges of the percentages at the rightcumperc = seq(0, 100, by = 20),    # label y rightylab2 = "Cumulative Percentage",   # title of the chartmain = "Complaints of different customers" )
Output :
In the chart here, the orange Pareto line indicates that (789 + 621) / 1722 which is approximately 80% of the complaints come from 2 out of 10 = 20% of the complaint types (Overpriced and Small portions).
Example 2:
# x axis numbersdefect <- c(7000, 4000, 5200, 3000, 800)  # x axis titlesnames(defect) <- c("Class A", "Class B", "Class C",                   "Class D", "Class E")   pareto.chart(defect, xlab = "Categories",                     ylab="Frequency",             col=heat.colors(length(defect)),             cumperc = seq(0, 100, by = 10),             ylab2 = "Cumulative Percentage",             main = "Defects")
Output:
Picked
R Language
Write From Home
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
How to change Row Names of DataFrame in R ?
Filter data by multiple conditions in R using Dplyr
Change Color of Bars in Barchart using ggplot2 in R
Loops in R (for, while, repeat)
How to Change Axis Scales in R Plots?
Convert integer to string in Python
Convert string to integer in Python
Python infinity
How to set input type date in dd-mm-yyyy format using HTML ?
Matplotlib.pyplot.title() in Python