# R - Pie Chart

A pie chart (or a circle chart) is a circular statistical graphic, which is divided into slices to illustrate numerical proportion. In a pie chart, the area of each slice is proportional to the quantity it represents.

The R pie() function makes a pie chart of vector x. The fractional area of each slice is given by x/sum(x). Slices are plotted counterclockwise, by default starting from the x-axis.

### Syntax

```pie(x, labels, radius, clockwise, main, col)
```

### Parameters

 `x` `Required. `Specify a vector of non-negative numerical quantities. The values in x are displayed as the areas of pie slices. `labels` `Optional. `Specify one or more expressions or character strings giving names for the slices. For empty or NA (after coercion to character) labels, no label nor pointing line is drawn. `radius` `Optional. `Specify the radius of the circle of the pie chart range from -1 to +1. `clockwise` `Optional. `Indicates if slices are drawn clockwise or counter clockwise. `main` `Optional. `Used to specify main title of the chart. `col` `Optional. `Specify a vector of colors to be used in filling or shading the slices.

### Example:

In the example below, a pie chart is created using data present in vector students, which represents number of students studying different languages.

```#creating dataset
students <- c(50, 40, 90, 30, 60, 50)
#creating labels
langs <- c("Java", "C#", "Python", "PHP", "C++", "R")

#naming the file
png(file = "piechart.png")

#drawing the pie chart
pie(students, labels=langs)

#saving the file
dev.off()
```

The output of the above code will be:

### Example: Add features to pie chart

More features in the chart can be added using more parameters in the function, for example: to add title to the chart, main parameter is used and to add color, col parameter is used. A rainbow color pallet can be used to give different colors to each slice. The length of the pallet should be same as number of slices in the pie chart.

```#creating dataset
students <- c(50, 40, 70, 30, 60, 50)
langs <- c("Java", "C#", "Python", "PHP", "C++", "R")

#naming the file
png(file = "piechart.png")

#drawing the pie chart
pie(students, labels=langs, main="Pie Chart",
col=rainbow(length(langs)))

#saving the file
dev.off()
```

The output of the above code will be:

### Example: Add percentages and legend to the chart

We can add percentages to each slice and legend to the chart. Consider the example below:

```library(formattable)

#creating dataset
students <- c(50, 40, 70, 30, 60, 50)
slice_percentage <- percent(students/sum(students), 1)

langs <- c("Java", "C#", "Python", "PHP", "C++", "R")

#naming the file
png(file = "piechart.png")

#drawing the pie chart
pie(students, labels=slice_percentage, main="Pie Chart",
col=rainbow(length(langs)))

legend("topright", langs, cex = 0.9, fill = rainbow(length(langs)))

#saving the file
dev.off()
```

The output of the above code will be:

### Example: 3D pie chart

To draw a 3D pie chart, pie3D() can be used.

```library(formattable)
library(plotrix)

#creating dataset
students <- c(50, 40, 70, 30, 60, 50)
slice_percentage <- percent(students/sum(students), 1)

langs <- c("Java", "C#", "Python", "PHP", "C++", "R")

#naming the file
png(file = "piechart.png")

#drawing the pie chart
pie3D(students, labels=slice_percentage, main="Pie Chart",
col=rainbow(length(langs)), explode=0.1)