Я пытаюсь сделать некоторые визуализации Vega-lite с моим набором данных наборов данных. Поля в моем наборе данных: record_id, subject, tag. Record_id - это уникальный идентификатор для набора данных, но каждый набор данных может иметь несколько субъектов и несколько тегов, поэтому для каждой возможной комбинации темы и тега для каждого набора данных есть одна строка. Я хочу, чтобы столбчатая диаграмма показывала для каждого тега, сколько наборов данных было помечено этим тегом. Но есть сотни тегов, слишком много для отображения на гистограмме, поэтому я хочу ограничиться до K, но какие теги отображаются чаще всего.
Я попытался проследить за этим "Топ-K график с Другие в Vega-Lite », где он определяет топ-директоров K по совокупному мировому брутто. Но, может быть, есть более простой способ сделать это, когда я просто выбираю топ k на основе тех же критериев, по которым я строю график? Я также открыт для разных способов показать одни и те же отношения.
VegaLite({
data: {values: data},
title: "Top k Tags",
mark: {type: "bar", tooltip: null},
transform: [
{ aggregate: {
op: "distinct",
field: "record_id",
as: "tag_count"},
groupby: ["tag"]}, // aggregate on "tag" field and count within the groups
{ window: [
{ op: "row_number",
as: "tag_rank"}],
sort: [{
field: ["tag_count"],
order: "descending" }]},
{ filter: `datum.tag_rank < 21`}
],
encoding: {
x: {
aggregate: "distinct",
field: "record_id",
type: "quantitative",
axis: {title: "Data Sets with this Tag"}
},
y: {
field: "tag",
type: "nominal",
sort: { op: "distinct", field: "record_id", order: "descending" }
}
}
})
Я ожидаю увидеть горизонтальную гистограмму с 20 столбцами со значениями от 1632 до 100 (из того же анализа в пандах я знаю, что количество тегов составляет от 1 до 1632).
Я вижу нужное количество полосок, но ось абсцисс идет от 0 до 1.0, а каждая полоса простирается до 1.0.