Точки — Point
Примитив point представляет каждую точку данных символом. Он часто используется, например, в диаграммах рассеяния.
Свойства точек
Определение point поддерживает любые стандартные свойства и следующие специальные свойства:
Нажмите, чтобы показать таблицу
| Свойство | Тип | Описание |
|---|---|---|
shape | anyOf(anyOf(SymbolShape, string), ExprRef) | Форма точек. Поддерживаются |
size | anyOf(number, ExprRef) | Стандартный размер примитива. Для point/circle/square — площадь в пикселях; длины сторон растут пропорционально квадратному корню из этого значения. Для bar — размер полосы в пикселях, для text — размер шрифта. По умолчанию: |
Примеры
Точечная диаграмма
Сопоставление поля только с x или только с y создаёт точечную диаграмму:
import altair as alt
from altair.datasets import data
source = data.movies()
alt.Chart(source).mark_point().encode(
x="IMDB Rating:Q"
)
Диаграмма рассеяния
Сопоставление полей с обоими каналами x и y создаёт диаграмму рассеяния:
import altair as alt
from altair.datasets import data
source = data.cars()
alt.Chart(source).mark_point().encode(
x="Horsepower:Q",
y="Miles_per_Gallon:Q",
)
По умолчанию point имеет только границу и прозрачную внутреннюю область. Включите filled=True, чтобы получить заливку:
import altair as alt
from altair.datasets import data
source = data.cars()
alt.Chart(source).mark_point(filled=True).encode(
x="Horsepower:Q",
y="Miles_per_Gallon:Q",
)
Пузырьковая диаграмма
Сопоставив третье поле каналу size, можно превратить диаграмму рассеяния в пузырьковую:
import altair as alt
from altair.datasets import data
source = data.cars()
alt.Chart(source).mark_point().encode(
x="Horsepower:Q",
y="Miles_per_Gallon:Q",
size="Acceleration:Q",
)
Цвет и форма точек
Поля можно кодировать через color и shape. Здесь Origin используется в обоих каналах:
import altair as alt
from altair.datasets import data
source = data.cars()
alt.Chart(source).mark_point().encode(
alt.X("Miles_per_Gallon:Q").scale(zero=False),
alt.Y("Horsepower:Q").scale(zero=False),
color="Origin:N",
shape="Origin:N",
)
Точечная диаграмма со случайным смещением
Чтобы разнести точки на дискретной шкале, добавьте случайное смещение:
import altair as alt
from altair.datasets import data
source = data.cars()
alt.Chart(source).mark_point().encode(
x="Horsepower:Q",
y="Cylinders:O",
yOffset="random:Q",
).transform_calculate(
random="random()"
).properties(
height=alt.Step(50)
)
Пример векторов ветра
Форма wedge и канал angle позволяют создать карту векторов ветра. Другие формы: "circle", "square", "cross", "diamond", "triangle-up", "triangle-down", "triangle-right", "triangle-left", "stroke", "arrow" и "triangle".
import altair as alt
from altair.datasets import data
source = data.windvectors()
alt.Chart(source).mark_point(shape="wedge", filled=True).encode(
latitude="latitude",
longitude="longitude",
color=alt.Color("dir").scale(domain=[0, 360], scheme="rainbow").legend(None),
angle=alt.Angle("dir").scale(domain=[0, 360], range=[180, 540]),
size=alt.Size("speed").scale(rangeMax=500),
).project("equalEarth")
Географические точки
Географические координаты можно сопоставить каналам longitude и latitude выбранной проекции. Например, покажем основные аэропорты США:
import altair as alt
from altair.datasets import data
airports = data.airports()
states = alt.topo_feature(data.us_10m.url, feature="states")
# US states background
background = alt.Chart(states).mark_geoshape(
fill="lightgray",
stroke="white"
).properties(
width=500,
height=300,
).project("albersUsa")
# airport positions on background
points = alt.Chart(airports).mark_circle(
size=10,
color="steelblue",
).encode(
longitude="longitude:Q",
latitude="latitude:Q",
tooltip=["name", "city", "state"],
)
background + points