如何为分层线图创建图例
How do I create a legend for a layered line plot
基本上我所拥有的是一个由多个折线图分层而成的折线图。由于每张图只有一条线,没有自动生成图例,那么获取图表图例的最佳方法是什么?我一直在考虑尝试转换我的数据集。这是疾病预防控制中心从 2019 年到 2020 年 6 月的每周死亡总数。csv 的排列方式是每个州的每个日期都有一个记录,其中每种疾病类型作为它自己的列,整数作为列值。所以没有一个领域可以绘制图表,有很多领域,因此是分层的。任何有关如何解决此问题的见解将不胜感激!这是我目前的工作:
您可以通过将每一层的颜色编码设置为 datum
指定您希望它具有的标签来为分层图表创建图例。例如 (vega editor):
{
"data": {
"values": [
{"x": 1, "y1": 1, "y2": 2},
{"x": 2, "y1": 3, "y2": 1},
{"x": 3, "y1": 2, "y2": 4},
{"x": 4, "y1": 4, "y2": 3},
{"x": 5, "y1": 3, "y2": 5}
]
},
"encoding": {"x": {"field": "x", "type": "quantitative"}},
"layer": [
{
"mark": "line",
"encoding": {
"y": {"field": "y1", "type": "quantitative"},
"color": {"datum": "y1"}
}
},
{
"mark": "line",
"encoding": {
"y": {"field": "y2", "type": "quantitative"},
"color": {"datum": "y2"}
}
}
]
}
或者,您可以使用 Fold Transform to pivot your data so that instead of manual layers, you can plot the multiple lines with a simple color encoding. For example (vega editor):
{
"data": {
"values": [
{"x": 1, "y1": 1, "y2": 2},
{"x": 2, "y1": 3, "y2": 1},
{"x": 3, "y1": 2, "y2": 4},
{"x": 4, "y1": 4, "y2": 3},
{"x": 5, "y1": 3, "y2": 5}
]
},
"transform": [{"fold": ["y1", "y2"], "as": ["name", "y"]}],
"mark": "line",
"encoding": {
"x": {"field": "x", "type": "quantitative"},
"y": {"field": "y", "type": "quantitative"},
"color": {"field": "name", "type": "nominal"}
}
}
基本上我所拥有的是一个由多个折线图分层而成的折线图。由于每张图只有一条线,没有自动生成图例,那么获取图表图例的最佳方法是什么?我一直在考虑尝试转换我的数据集。这是疾病预防控制中心从 2019 年到 2020 年 6 月的每周死亡总数。csv 的排列方式是每个州的每个日期都有一个记录,其中每种疾病类型作为它自己的列,整数作为列值。所以没有一个领域可以绘制图表,有很多领域,因此是分层的。任何有关如何解决此问题的见解将不胜感激!这是我目前的工作:
您可以通过将每一层的颜色编码设置为 datum
指定您希望它具有的标签来为分层图表创建图例。例如 (vega editor):
{
"data": {
"values": [
{"x": 1, "y1": 1, "y2": 2},
{"x": 2, "y1": 3, "y2": 1},
{"x": 3, "y1": 2, "y2": 4},
{"x": 4, "y1": 4, "y2": 3},
{"x": 5, "y1": 3, "y2": 5}
]
},
"encoding": {"x": {"field": "x", "type": "quantitative"}},
"layer": [
{
"mark": "line",
"encoding": {
"y": {"field": "y1", "type": "quantitative"},
"color": {"datum": "y1"}
}
},
{
"mark": "line",
"encoding": {
"y": {"field": "y2", "type": "quantitative"},
"color": {"datum": "y2"}
}
}
]
}
或者,您可以使用 Fold Transform to pivot your data so that instead of manual layers, you can plot the multiple lines with a simple color encoding. For example (vega editor):
{
"data": {
"values": [
{"x": 1, "y1": 1, "y2": 2},
{"x": 2, "y1": 3, "y2": 1},
{"x": 3, "y1": 2, "y2": 4},
{"x": 4, "y1": 4, "y2": 3},
{"x": 5, "y1": 3, "y2": 5}
]
},
"transform": [{"fold": ["y1", "y2"], "as": ["name", "y"]}],
"mark": "line",
"encoding": {
"x": {"field": "x", "type": "quantitative"},
"y": {"field": "y", "type": "quantitative"},
"color": {"field": "name", "type": "nominal"}
}
}