---
title: "init(xStart:xEnd:yStart:yEnd:)"
framework: charts
role: symbol
role_heading: Initializer
path: "charts/rectanglemark/init(xstart:xend:ystart:yend:)-1qbzg"
---

# init(xStart:xEnd:yStart:yEnd:)

Creates a rectangle mark with x and y interval encodings.

## Declaration

```swift
nonisolated init<X, Y>(xStart: PlottableValue<X>, xEnd: PlottableValue<X>, yStart: PlottableValue<Y>, yEnd: PlottableValue<Y>) where X : Plottable, Y : Plottable
```

## Parameters

- `xStart`: The value plotted with x start.
- `xEnd`: The value plotted with x end.
- `yStart`: The value plotted with y start.
- `yEnd`: The value plotted with y end.

## Discussion

Discussion Use this initializer to map the x start, x end, y start, and y end position to a rectangle for each data element. The example below uses a number scale starting at (0,0) and ending at (6,6). The rectangle has the coordinates: (2,2), (2,4), (4,4), (4,2). Chart(data) {     RectangleMark(         xStart: .value("Rect xStart", 2),         xEnd: .value("Rect xEnd", 4),         yStart: .value("Rect yStart", 2),         yEnd: .value("Rect yEnd", 4)     )     .opacity(0.2)

PointMark(         x: .value("X", $0.x),         y: .value("Y", $0.y)     ) }

## See Also

### Creating a rectangle mark

- [init(x:yStart:yEnd:width:)](charts/rectanglemark/init(x:ystart:yend:width:)-vh2x.md)
- [init(x:yStart:yEnd:width:)](charts/rectanglemark/init(x:ystart:yend:width:)-xhqp.md)
- [init(xStart:xEnd:y:height:)](charts/rectanglemark/init(xstart:xend:y:height:)-27222.md)
- [init(xStart:xEnd:y:height:)](charts/rectanglemark/init(xstart:xend:y:height:)-4x46i.md)
- [init(xStart:xEnd:yStart:yEnd:)](charts/rectanglemark/init(xstart:xend:ystart:yend:)-5682c.md)
- [init(xStart:xEnd:yStart:yEnd:)](charts/rectanglemark/init(xstart:xend:ystart:yend:)-5cbgh.md)
- [init(xStart:xEnd:yStart:yEnd:)](charts/rectanglemark/init(xstart:xend:ystart:yend:)-6jeka.md)
- [init(x:y:width:height:)](charts/rectanglemark/init(x:y:width:height:).md)
- [init(x:y:z:)](charts/rectanglemark/init(x:y:z:).md)
