---
title: "Callout"
language: "en"
type: "Symbol"
summary: "Callout[data, expr] displays expr in a plot as a callout pointing to data. Callout[data, expr, pos] displays a callout with expr at a position specified by pos. Callout[data, expr, pos, apos] displays a callout anchored at a position specified by apos."
keywords: 
- callout label
- call out
- called out
- leader lines
- leaders
- balloon
canonical_url: "https://reference.wolfram.com/language/ref/Callout.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Labels"
    link: "https://reference.wolfram.com/language/guide/Labels.en.md"
  - 
    title: "Data Visualization"
    link: "https://reference.wolfram.com/language/guide/DataVisualization.en.md"
  - 
    title: "Function Visualization"
    link: "https://reference.wolfram.com/language/guide/FunctionVisualization.en.md"
related_functions: 
  - 
    title: "Labeled"
    link: "https://reference.wolfram.com/language/ref/Labeled.en.md"
  - 
    title: "Legended"
    link: "https://reference.wolfram.com/language/ref/Legended.en.md"
  - 
    title: "LabelingSize"
    link: "https://reference.wolfram.com/language/ref/LabelingSize.en.md"
  - 
    title: "LabelVisibility"
    link: "https://reference.wolfram.com/language/ref/LabelVisibility.en.md"
  - 
    title: "PlotLabels"
    link: "https://reference.wolfram.com/language/ref/PlotLabels.en.md"
  - 
    title: "ChartLabels"
    link: "https://reference.wolfram.com/language/ref/ChartLabels.en.md"
  - 
    title: "Placed"
    link: "https://reference.wolfram.com/language/ref/Placed.en.md"
  - 
    title: "Plot"
    link: "https://reference.wolfram.com/language/ref/Plot.en.md"
  - 
    title: "ListPlot"
    link: "https://reference.wolfram.com/language/ref/ListPlot.en.md"
  - 
    title: "ListLinePlot"
    link: "https://reference.wolfram.com/language/ref/ListLinePlot.en.md"
  - 
    title: "DateListPlot"
    link: "https://reference.wolfram.com/language/ref/DateListPlot.en.md"
---
# Callout

Callout[data, expr] displays expr in a plot as a callout pointing to data.

Callout[data, expr, pos] displays a callout with expr at a position specified by pos.

Callout[data, expr, pos, apos] displays a callout anchored at a position specified by apos.

## Details and Options

* ``Callout[data, expr, …]`` can be used as a wrapper in visualization functions such as ``Plot``, ``ListPlot``, etc.

* ``Callout[expr, …]`` can be used in ``PlotLabels`` to specify callouts, similar to ``Placed``.

[image]

* ``expr`` can be any expression, including strings, graphics, and formulas.

* The callout position ``pos`` and anchor positions ``apos`` are automatically computed when specific positions are not given.

* Possible callout positions ``pos`` vary by function, but typically include:

|                             |                                                |
| --------------------------- | ---------------------------------------------- |
| x                           | near the data at a position x                  |
| {x, y}                      | at a position {x, y}                           |
| Scaled[s]                   | scaled position s along the data               |
| Above, Below, Before, After | relative positions                             |
| {s, Above}, {s, Below}, …   | relative position at position s along the data |
| {pos, epos}                 | epos in expr placed at position pos            |
| Automatic                   | pos is automatically determined                |

* Possible anchor positions ``apos`` include:

|           |                                  |
| --------- | -------------------------------- |
| x         | near the data at a position x    |
| {x, y}    | at a position {x, y}             |
| Scaled[s] | scaled position s along the data |
| Automatic | apos is automatically determined |

* ``Callout`` takes the following options:

|                  |           |                                            |
| ---------------- | --------- | ------------------------------------------ |
| Appearance       | Automatic | overall style of the callout               |
| Background       | Automatic | style of the label background              |
| CalloutMarker    | None      | marker to use for the anchor position apos |
| CalloutStyle     | Automatic | style to use for strokes and knockouts     |
| Frame            | Automatic | frame of the label box                     |
| FrameMargins     | Automatic | margins to leave inside the frame          |
| LabelStyle       | {}        | style to use for the label                 |
| LabelVisibility  | Automatic | priority relative to other labels          |
| LeaderSize       | Automatic | length and angle to use for the leader     |
| RoundingRadius   | 0         | radius for rounded corners                 |

[image]

* Possible values for ``Appearance`` :

|         |                |                                     |
| ------- | -------------- | ----------------------------------- |
| [image] | "Leader"       | a leader is used from label to data |
| [image] | "CurvedLeader" | a curved leader                     |
| [image] | "SlantedLabel" | an angled label and neck            |
| [image] | "Frame"        | full frame around expr              |
| [image] | "Line"         | a partial frame around expr         |
| [image] | "Corners"      | frame corners around expr           |
| [image] | "Balloon"      | a balloon around expr               |
| [image] | "LineBalloon"  | a partial balloon around expr       |
| [image] | None           | no leader is drawn                  |

* Possible settings for ``CalloutMarker`` are:

|               |                         |
| ------------- | ----------------------- |
| None          | no marker is used       |
| "name"        | use named marker        |
| Arrowheads[…] | arrowhead specification |
| g             | expression g            |

* The named markers ``"name"`` are:

|                |                         |                  |
| -------------- | ----------------------- | ---------------- |
| [image][image] | "CirclePoint", "Circle" | circular markers |
| [image][image] | "BoxPoint", "Box"       | square markers   |
| [image][image] | "Star", "OpenStar"      | star markers     |
| [image][image] | "Arrow", "OpenArrow"    | arrow markers    |

* ``CalloutStyle`` specifies the style to be used for the marker, leader, neck, and frame. The marker, leader, and neck typically have the space around them padded with the ambient background color to increase visibility.

* Possible values for ``CalloutStyle`` are:

|              |                                                |
| ------------ | ---------------------------------------------- |
| Automatic    | default style is used                          |
| sty          | use style sty, with the default knockout style |
| {sty, kosty} | use kosty for the knockout style               |

* Possible values for ``LeaderSize`` :

|                         |                                                          |
| ----------------------- | -------------------------------------------------------- |
| Automatic               | automatic leader size                                    |
| lr                      | length of the leader                                     |
| {lr, lθ, s}             | leader length lr at angle lθ and the gap s to the anchor |
| {{lr, lθ, s}, {nr, nθ}} | leader specification with neck length nr at angle nθ     |

## Examples (37)

### Basic Examples (4)

Label points with callouts:

```wl
In[1]:= ListPlot[Table[Callout[i, i], {i, 1, 5}]]

Out[1]= [image]
```

Use a named position for the callout:

```wl
In[2]:= ListPlot[{16, 35, 39, Callout[44, "label", Below], 61, 74, 84, 86, 97, 100}]

Out[2]= [image]
```

---

Label a curve with a callout:

```wl
In[1]:= Plot[{Sin[x], Callout[Cos[x], "label"]}, {x, 0, 2π}]

Out[1]= [image]
```

---

Use a named position relative to the curve for the callout:

```wl
In[1]:= Plot[{Callout[Log[x]Sin[x], "max", Above], Log[x]Cos[x]}, {x, 0, 2π}]

Out[1]= [image]
```

---

Stylize the callout:

```wl
In[1]:= Plot[Callout[Log[x]Sin[x], "min", Bottom, LabelStyle -> Directive[Bold, Italic], Background -> LightBlue, FrameMargins -> 7], {x, 0, 2π}]

Out[1]= [image]
```

### Scope (15)

#### Label Placement (8)

Callouts are placed near individual points:

```wl
In[1]:= ListPlot[Table[Callout[Fibonacci[n], Fibonacci[n]], {n, 10}]]

Out[1]= [image]
```

---

Callouts are automatically placed at the ends of curves:

```wl
In[1]:= Plot[{Callout[Sin[x], "sine"], Callout[Cos[x], "cosine"]}, {x, 0, 10}]

Out[1]= [image]
```

---

Place callouts relative to the points:

```wl
In[1]:= Table[ListPlot[Table[Callout[Fibonacci[n], Fibonacci[n], p], {n, 10}], Frame -> True], {p, {Above, Below, Before, After}}]

Out[1]= {[image], [image], [image], [image]}

In[2]:= Table[Plot[Callout[Sinc[x], "label", p], {x, -10, 10}, Frame -> True, BaselinePosition -> Bottom], {p, {Above, Below}}]

Out[2]= [image]
```

---

Place labels near an absolute position on a curve:

```wl
In[1]:= Plot[Callout[Sinc[x], "label", 7], {x, 0, 10}]

Out[1]= [image]
```

---

Place labels near a scaled position on a curve:

```wl
In[1]:= Plot[Callout[Sinc[x], "label", Scaled[0.75]], {x, 0, 10}]

Out[1]= [image]
```

---

Place labels above the curve near the given positions:

```wl
In[1]:= Plot[Callout[Sinc[x], "label", {3, Above}], {x, 0, 10}]

Out[1]= [image]

In[2]:= Plot[Callout[Sinc[x], "label", {Scaled[0.3], Above}], {x, 0, 10}]

Out[2]= [image]
```

---

Place a label at a specific point:

```wl
In[1]:= Plot[Callout[Sinc[x], "label", {6, 0.5}], {x, 0, 10}]

Out[1]= [image]
```

---

Specify the position in the label that connects to the leader:

```wl
In[1]:= Table[Plot[Callout[Sinc[x], "label", {5Pi / 2, {s, 0.5}}], {x, 0, 10}], {s, {0, 1}}]

Out[1]= [image]
```

#### Anchor Placement (3)

Specify where the leader should point to on the curve with an absolute position:

```wl
In[1]:= Table[Plot[Callout[Sinc[x], "label", {5, 0.8}, a], {x, -10, 10}], {a, {2, 8}}]

Out[1]= [image]
```

---

Specify where the leader should point to on the curve with a scaled position:

```wl
In[1]:= Table[Plot[Callout[Sinc[x], "label", {5, 0.8}, Scaled[a]], {x, -10, 10}], {a, {0.6, 0.9}}]

Out[1]= [image]
```

---

Specify an exact point the leader should point to:

```wl
In[1]:= ListLinePlot[Callout[Table[{t Cos[t], t Sin[t]}, {t, 0, 10, 0.1}], "label", {-3, 3}, {2.5Cos[2.5], 2.5Sin[2.5]}]]

Out[1]= [image]
```

#### Presentation (4)

Place the callout in a frame:

```wl
In[1]:= Plot[Callout[Log[x]Sin[x], "max", Above, Appearance -> "Frame"], {x, 0, 2π}, PlotTheme -> "Minimal"]

Out[1]= [image]
```

Use a balloon:

```wl
In[2]:= Plot[Callout[Log[x]Sin[x], "max", Above, Appearance -> "Balloon"], {x, 0, 2π}, PlotTheme -> "Minimal"]

Out[2]= [image]
```

---

Circle the anchor point for the callout on the curve:

```wl
In[1]:= Plot[Callout[Log[x]Sin[x], "min", Below, CalloutMarker -> "Circle"], {x, 0, 2π}, PlotTheme -> "Business"]

Out[1]= [image]
```

Point to it with an arrow:

```wl
In[2]:= Plot[Callout[Log[x]Sin[x], "min", Below, CalloutMarker -> "Arrow"], {x, 0, 2π}, PlotTheme -> "Business"]

Out[2]= [image]
```

---

Use uniform leader lines for the callouts:

```wl
In[1]:= ListPlot[Table[Callout[Prime[n], Prime[n], LeaderSize -> {{12, 135°, 6}, {5, 180°}}], {n, 10}], PlotMarkers -> Automatic, PlotTheme -> "Web"]

Out[1]= [image]
```

---

Style the callouts to match their curves:

```wl
In[1]:= Plot[{Callout[Sin[x], Sin[x], Above, Background -> RGBColor[0.790588, 0.201176, 0.], LabelStyle -> GrayLevel[1]], Callout[Cos[x], Cos[x], Below, Background -> RGBColor[0.192157, 0.388235, 0.807843], LabelStyle -> GrayLevel[1], Appearance -> "Balloon"]}, {x, 0, 2Pi}, PlotTheme -> "Web"]

Out[1]= [image]
```

### Options (17)

#### Appearance (2)

Use different named appearances:

```wl
In[1]:= Table[Plot[Callout[Log[x]Sin[x], "label", Scaled[0.2], Appearance -> a], {x, 0, 10}, PlotLabel -> a], {a, {"Leader", "CurvedLeader", "SlantedLabel", "Frame", "Line", "Corners", "Balloon", "LineBalloon"}}]

Out[1]= [image]
```

---

Combine appearance with other styling:

```wl
In[1]:= Plot[{Callout[Log[x]Sin[x], "label", Automatic, 4, Appearance -> "Corners", Background -> LightGreen, LeaderSize -> {20, 60 °, 5}, CalloutStyle -> {Darker@Blue, LightGreen}], Cos[x]}, {x, 0, 2π}]

Out[1]= [image]
```

#### Background (1)

Stylize the background of the callout label:

```wl
In[1]:= Plot[{Callout[Log[x] Sin[x], "label", {Scaled[0.65], Above}, Background -> LightGray], Tan[x]Sin[x]}, {x, 0, 10}]

Out[1]= [image]
```

#### CalloutMarker (2)

Use named markers:

```wl
In[1]:= Table[ListLinePlot[Callout[Fibonacci[Range[6]], "label", {3, 5}, 4, CalloutMarker -> i], PlotLabel -> i], {i, {"CirclePoint", "Circle", "BoxPoint", "Box", "Star", "OpenStar", "Arrow", "OpenArrow"}}]

Out[1]= {[image], [image], [image], [image], [image], [image], [image], [image]}
```

---

Use ``Arrowheads`` as a marker:

```wl
In[1]:= ListLinePlot[{Callout[Fibonacci[Range[6]], "Fibonacci", {4, 10}, 5, CalloutMarker -> Arrowheads[0.04]], Table[LucasL[n], {n, 6}]}]

Out[1]= [image]
```

#### CalloutStyle (2)

Change the color of the leader:

```wl
In[1]:= ListLinePlot[{Range[20], Callout[Prime[Range[20]], "label", Scaled[0.6], CalloutStyle -> Red]}]

Out[1]= [image]
```

---

Specify the knockout style:

```wl
In[1]:= ListLinePlot[{Callout[Prime[Range[20]], "label", 14, CalloutStyle -> {White, Red}], Range[20]}, GridLines -> Automatic, PlotTheme -> "Marketing"]

Out[1]= [image]
```

#### Frame (1)

Use frame:

```wl
In[1]:= Plot[{Callout[Sin[x], "label", Top, Frame -> True], Cos[x]}, {x, 0, 10}]

Out[1]= [image]
```

Draw only the top and bottom frame edges:

```wl
In[2]:= Plot[{Callout[Sin[x], "label", Top, Frame -> {{False, False}, {True, True}}], Cos[x]}, {x, 0, 10}]

Out[2]= [image]
```

#### FrameMargins (1)

Control the margins around the callout label:

```wl
In[1]:= Table[ListLinePlot[Callout[Prime[Range[20]], "label", Scaled[0.6], Frame -> True, FrameMargins -> i]], {i, {3, 6}}]

Out[1]= {[image], [image]}
```

With the balloon appearance:

```wl
In[2]:= Table[ListLinePlot[Callout[Prime[Range[20]], "label", Scaled[0.6], Appearance -> "Balloon", FrameMargins -> i]], {i, {3, 6}}]

Out[2]= {[image], [image]}
```

#### LabelVisibility (3)

Callouts are pruned to avoid collisions:

```wl
In[1]:= ListPlot[Table[Callout[{i, i}, i, LabelVisibility -> Automatic], {i, 50}], ImageSize -> 200]

Out[1]= [image]
```

---

Label all the even-numbered points in a plot, even if some of them collide:

```wl
In[1]:= ListPlot[Table[Callout[{i, i}, i, LabelVisibility -> If[EvenQ[i], All, None]], {i, 50}], ImageSize -> 200]

Out[1]= [image]
```

---

Label even-numbered points while avoiding collisions:

```wl
In[1]:= ListPlot[Table[Callout[{i, i}, i, LabelVisibility -> If[EvenQ[i], Infinity, -Infinity]], {i, 50}], ImageSize -> 200]

Out[1]= [image]
```

#### LeaderSize (3)

Specify the leader length:

```wl
In[1]:= Table[Plot[{Callout[Log[x] Sin[x], "label", Automatic, 2, LeaderSize -> s], Sin[x]}, {x, 0, 10}], {s, {15, 30}}]

Out[1]= [image]
```

---

Control the slope of the leader:

```wl
In[1]:= Table[Plot[Callout[Sinc[x], "label", Automatic, 0, LeaderSize -> {20, θ, 5}], {x, -10, 10}, PlotRange -> {-1, 2}], {θ, {0°, 45°, 135°, 180°}}]

Out[1]= [image]
```

Specify the distance between the leader and the curve:

```wl
In[2]:= Table[Plot[Callout[Sinc[x], "label", Automatic, 1, LeaderSize -> {25, 45°, g}], {x, -10, 10}, PlotRange -> {-1, 2}], {g, {0, 10}}]

Out[2]= [image]
```

---

Specify both leader and neck length and angle:

```wl
In[1]:= Plot[{Callout[Log[x] Sin[x], "label", Automatic, 6.5, LeaderSize -> {{35, 110°, 5}, {10, 150°}}], Sin[x]}, {x, 0, 10}]

Out[1]= [image]
```

#### LabelStyle (1)

Style the callout label:

```wl
In[1]:= Plot[{Callout[Sin[x] + x / 2, "label", {Scaled[0.75], Below}, LabelStyle -> {14, Bold, Blue}], Sin[x] + x}, {x, 0, 10}]

Out[1]= [image]
```

#### RoundingRadius (1)

Use a rounded rectangle around the callout label:

```wl
In[1]:= Plot[Callout[x ^ 4 - 25 x ^ 2 + 20 x + 15, "label", Scaled[0.6], RoundingRadius -> 5, Appearance -> "Frame"], {x, -5, 5}]

Out[1]= [image]
```

With the balloon appearance:

```wl
In[2]:= Plot[Callout[x ^ 4 - 25 x ^ 2 + 20 x + 15, "label", Scaled[0.6], RoundingRadius -> 5, Appearance -> "Balloon"], {x, -5, 5}]

Out[2]= [image]
```

### Applications (1)

Get the area and population for every country in the world:

```wl
In[1]:= data = EntityValue[\[FreeformPrompt]["all countries"], {"Name", "Area", "Population"}];
```

Add callouts to some of the countries that have relatively extreme areas or populations:

```wl
In[2]:= annotated = data /.  {{n : "Macau" | "Monaco" | "India", a_, b_} :> Callout[{a, b}, n, Above], {n : "Pitcairn Islands" | "Svalbard" | "Greenland", a_, b_} :> Callout[{a, b}, n, Below], {r : "Russia" | "China", a_, b_} :> Callout[{a, b}, r, After], {"Vatican City", a_, b_} :> Callout[{a, b}, "Vatican City", Before], {n_, a_, b_} :> Tooltip[{a, b}, n]};
```

Plot the data on a log-log scale:

```wl
In[3]:= ListLogLogPlot[annotated, PlotTheme -> "Detailed", FrameLabel -> Automatic]

Out[3]= [image]
```

## See Also

* [`Labeled`](https://reference.wolfram.com/language/ref/Labeled.en.md)
* [`Legended`](https://reference.wolfram.com/language/ref/Legended.en.md)
* [`LabelingSize`](https://reference.wolfram.com/language/ref/LabelingSize.en.md)
* [`LabelVisibility`](https://reference.wolfram.com/language/ref/LabelVisibility.en.md)
* [`PlotLabels`](https://reference.wolfram.com/language/ref/PlotLabels.en.md)
* [`ChartLabels`](https://reference.wolfram.com/language/ref/ChartLabels.en.md)
* [`Placed`](https://reference.wolfram.com/language/ref/Placed.en.md)
* [`Plot`](https://reference.wolfram.com/language/ref/Plot.en.md)
* [`ListPlot`](https://reference.wolfram.com/language/ref/ListPlot.en.md)
* [`ListLinePlot`](https://reference.wolfram.com/language/ref/ListLinePlot.en.md)
* [`DateListPlot`](https://reference.wolfram.com/language/ref/DateListPlot.en.md)

## Related Guides

* [`Labels`](https://reference.wolfram.com/language/guide/Labels.en.md)
* [Data Visualization](https://reference.wolfram.com/language/guide/DataVisualization.en.md)
* [Function Visualization](https://reference.wolfram.com/language/guide/FunctionVisualization.en.md)

## History

* [Introduced in 2016 (11.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn110.en.md) \| [Updated in 2019 (12.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn120.en.md)