Adding a Polygon with the polygon() Function in R

Adding a Polygon with the polygon() Function

Syntax of the polygon() Function

The polygon() function draws a polygon defined by a series of points. Its basic syntax is: 

polygon(x, y, border = NULL, col = NULL, lty = 1, lwd = 1)
  • x: Numeric vector of x-coordinates for the vertices of the polygon.
  • y: Numeric vector of y-coordinates for the vertices of the polygon.
  • border: Color of the polygon border. (Default is NULL, meaning no border.)
  • col: Color of the polygon fill. (Default is NULL, meaning no fill.)
  • lty: Line type for the border. (Default is 1, solid line.)
  • lwd: Line width of the border. (Default is 1.)

Basic Example: Drawing a Simple Polygon

Here’s how to create a basic polygon: 

# Generate example data
x <- c(2, 4, 6, 4)
y <- c(2, 4, 2, 0)
# Create a basic plot
plot(1:10, 1:10, type = "n", main = "Basic Polygon Example")
# Add a polygon
polygon(x, y, border = "blue", col = "lightblue")
  • x: x-coordinates of the polygon vertices.
  • y: y-coordinates of the polygon vertices.
  • border = “blue”: Border color of the polygon.
  • col = “lightblue”: Fill color of the polygon.

Creating a Complex Polygon

You can draw polygons with more vertices for complex shapes.

Example: 

# Generate coordinates for a complex polygon
x <- c(1, 3, 5, 7, 6, 4)
y <- c(1, 2, 1, 4, 6, 4)
# Create a basic plot
plot(1:10, 1:10, type = "n", main = "Complex Polygon")
# Add a complex polygon
polygon(x, y, border = "red", col = "yellow")
  • x and y: Coordinates for the vertices of the polygon.
  • border = “red”: Border color of the polygon.
  • col = “yellow”: Fill color of the polygon.

Highlighting Areas

Polygons can be used to highlight specific areas on the plot.

Example: 

# Generate example data
x <- c(2, 4, 6, 4)
y <- c(2, 4, 2, 0)
# Create a basic plot
plot(1:10, 1:10, type = "n", main = "Highlighted Area")
# Add a polygon to highlight an area
polygon(x, y, border = "blue", col = rgb(0.5, 0.5, 1, 0.5))
  • rgb(0.5, 0.5, 1, 0.5): Defines a semi-transparent blue color for the polygon fill.

Adding Polygons to Existing Plots

You can add polygons to an existing plot using the polygon() function.

Example: 

# Generate example data
x <- 1:10
y <- x^2
# Create a plot with the data
plot(x, y, main = "Polygon on Existing Plot")
# Add a polygon
polygon(c(3, 5, 7, 5), c(9, 25, 49, 16), border = "green", col = "lightgreen")
  • c(3, 5, 7, 5): x-coordinates for the polygon vertices.
  • c(9, 25, 49, 16): y-coordinates for the polygon vertices.

Using Polygons for Area Plots

Polygons can be used to create area plots or density plots.

Example: 

# Generate density data
x <- seq(0, 10, length.out = 100)
y1 <- dnorm(x, mean = 5, sd = 1)
y2 <- dnorm(x, mean = 7, sd = 1.5)
# Create a density plot
plot(x, y1, type = "l", col = "blue", ylim = c(0, max(y1, y2)), main = "Area Plot")
# Add density areas with polygons
polygon(c(x, rev(x)), c(y1, rep(0, length(x))), col = rgb(0.5, 0.5, 1, 0.5), border = NA)
polygon(c(x, rev(x)), c(y2, rep(0, length(x))), col = rgb(1, 0.5, 0.5, 0.5), border = NA)
  • c(x, rev(x)): x-coordinates for the polygon, doubled to close the shape.
  • c(y1, rep(0, length(x))): y-coordinates for the polygon, with a line to 0 to close the shape.
  • rgb(0.5, 0.5, 1, 0.5) and rgb(1, 0.5, 0.5, 0.5): Semi-transparent colors for the polygon fill.

Summary

  • polygon() Function: Draws polygons on a plot.
    • x: x-coordinates of the vertices.
    • y: y-coordinates of the vertices.
    • border: Border color.
    • col: Fill color.
    • lty: Line type for the border.
    • lwd: Line width of the border.
  • Basic Example: Drawing a simple polygon.
  • Complex Polygons: Creating polygons with more vertices.
  • Highlighting Areas: Using polygons to emphasize regions.
  • Adding to Existing Plots: Incorporating polygons into existing plots.
  • Area Plots: Creating area plots or density plots with polygons.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print