Marks¶
We saw in Encodings that the encode()
method is
used to map columns to visual attributes of the plot.
The mark
property is what specifies how exactly those attributes
should be represented on the plot.
Altair provides a number of mark properties:
Mark Name | Method | Description | Example |
---|---|---|---|
area | mark_area() |
A filled area plot. | Simple Stacked Area Chart |
bar | mark_bar() |
A bar plot. | Simple Bar Chart |
circle | mark_circle() |
A scatter plot with filled circles. | One Dot Per Zipcode |
geoshape | mark_geoshape() |
A geographic shape | Choropleth Map |
line | mark_line() |
A line plot. | Simple Line Chart |
point | mark_point() |
A scatter plot with configurable point shapes. | Faceted Scatter Plot with Linked Brushing |
rect | mark_rect() |
A filled rectangle, used for heatmaps | Simple Heatmap |
rule | mark_rule() |
A vertical or horizontal line spanning the axis. | Candlestick Chart |
square | mark_square() |
A scatter plot with filled squares. | N/A |
text | mark_text() |
A scatter plot with points represented by text. | Simple Bar Chart with Labels |
tick | mark_tick() |
A vertical or horizontal tick mark. | Strip Plot |
In Altair, marks can be most conveniently specified by the mark_*
methods
of the Chart object, which take optional keyword arguments that are passed to
MarkDef
to configure the look of the marks.
For example, the following uses mark_circle()
with additional
arguments to represent points as red semi-transparent filled circles:
import altair as alt
from vega_datasets import data
url = data.cars.url
alt.Chart(url).mark_circle(
color='red',
opacity=0.3
).encode(
x='Horsepower:Q',
y='Miles_per_Gallon:Q'
)
The additional arguments to mark_*()
methods are passed along to an
associated MarkDef
instance, which supports the following attributes:
Property | Type | Description |
---|---|---|
align | HorizontalAlign |
The horizontal alignment of the text. One of "left" , "right" , "center" . |
angle | number |
The rotation angle of the text, in degrees. |
baseline | VerticalAlign |
The vertical alignment of the text. One of Default value: |
binSpacing | number |
Offset between bars for binned field. Ideal value for this is either 0 (Preferred by statisticians) or 1 (Vega-Lite Default, D3 example style). Default value: |
clip | boolean |
Whether a mark be clipped to the enclosing group’s width and height. |
color | string |
Default color. Note that Default value: ■ Note: This property cannot be used in a style config. |
cornerRadius | number |
The radius in pixels of rounded rectangle corners. Default value: |
cursor | Cursor |
The mouse cursor used over the mark. Any valid CSS cursor type can be used. |
dir | Dir |
The direction of the text. One of Default value: |
dx | number |
The horizontal offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the angle property. |
dy | number |
The vertical offset, in pixels, between the text label and its anchor point. The offset is applied after rotation by the angle property. |
ellipsis | string |
The ellipsis string for text truncated in response to the limit parameter. Default value: |
fill | string |
Default Fill Color. This has higher precedence than Default value: (None) |
fillOpacity | number |
The fill opacity (value between [0,1]). Default value: |
filled | boolean |
Whether the mark’s color should be used as fill color instead of stroke color. Default value: Applicable for: Note: This property cannot be used in a style config. |
font | string |
The typeface to set the text in (e.g., "Helvetica Neue" ). |
fontSize | number |
The font size, in pixels. |
fontStyle | FontStyle |
The font style (e.g., "italic" ). |
fontWeight | FontWeight |
The font weight.
This can be either a string (e.g "bold" , "normal" ) or a number (100 , 200 , 300 , …, 900 where "normal" = 400 and "bold" = 700 ). |
href | string |
A URL to load upon mouse click. If defined, the mark acts as a hyperlink. |
interpolate | Interpolate |
The line interpolation method to use for line and area marks. One of the following:
|
limit | number |
The maximum length of the text mark in pixels. The text value will be automatically truncated if the rendered size exceeds the limit. Default value: |
line | anyOf(boolean , OverlayMarkDef ) |
A flag for overlaying line on top of area marks, or an object defining the properties of the overlayed lines.
Default value: |
opacity | number |
The overall opacity (value between [0,1]). Default value: |
orient | Orient |
The orientation of a non-stacked bar, tick, area, and line charts. The value is either horizontal (default) or vertical.
|
point | anyOf(boolean , OverlayMarkDef , [‘transparent’]) |
A flag for overlaying points on top of line or area marks, or an object defining the properties of the overlayed points.
Default value: |
radius | number |
Polar coordinate radial offset, in pixels, of the text label from the origin determined by the x and y properties. |
shape | string |
The default symbol shape to use. One of: Default value: |
size | number |
The pixel area each the point/circle/square. For example: in the case of circles, the radius is determined in part by the square root of the size value. Default value: |
stroke | string |
Default Stroke Color. This has higher precedence than Default value: (None) |
strokeCap | StrokeCap |
The stroke cap for line ending style. One of Default value: |
strokeDash | array(number ) |
An array of alternating stroke, space lengths for creating dashed or dotted lines. |
strokeDashOffset | number |
The offset (in pixels) into which to begin drawing with the stroke dash array. |
strokeJoin | StrokeJoin |
The stroke line join method. One of Default value: |
strokeMiterLimit | number |
The miter limit at which to bevel a line join. |
strokeOpacity | number |
The stroke opacity (value between [0,1]). Default value: |
strokeWidth | number |
The stroke width, in pixels. |
style | anyOf(string , array(string )) |
A string or array of strings indicating the name of custom styles to apply to the mark. A style is a named collection of mark property defaults defined within the style configuration. If style is an array, later styles will override earlier styles. Any mark properties explicitly defined within the Default value: The mark’s name. For example, a bar mark will have style |
tension | number |
Depending on the interpolation type, sets the tension parameter (for line and area marks). |
text | string |
Placeholder text if the text channel is not specified |
theta | number |
Polar coordinate angle, in radians, of the text label from the origin determined by the x and y properties. Values for theta follow the same convention of arc mark startAngle and endAngle properties: angles are measured in radians, with 0 indicating “north”. |
thickness | number |
Thickness of the tick mark. Default value: |
tooltip | – | The tooltip text to show upon mouse hover. |
type | Mark |
The mark type.
One of "bar" , "circle" , "square" , "tick" , "line" ,
"area" , "point" , "geoshape" , "rule" , and "text" . |
x2Offset | number |
Offset for x2-position. |
xOffset | number |
Offset for x-position. |
y2Offset | number |
Offset for y2-position. |
yOffset | number |
Offset for y-position. |
Marks can also be configured globally using chart-level configurations; see Mark and Mark Style Configuration for details.