如何在不重复代码的情况下对多条回归线进行分层?
how to layer multiple regression lines without repeating code?
我正在使用 Vega Lite 绘制我吃饭的时间图表,并想要一条回归(黄土)线来显示每顿饭的一般时间。默认情况下,回归使用整个数据集并且只显示一行;我要三行,每餐一行(存储在字段extra_data.content
)。
我已经实现了我想做的事情,我将黄土层重复三次 (screenshot),但我正在尝试找到一种解决方案,在该解决方案中,同一层只写一次,然后自己重复三次。
解决后编辑!非常感谢@jakevdp的解答!这是我的工作代码;注意黄土上既有groupby
,又有color
渠道
{
"mark": "line",
"transform": [
{
"loess": "hm",
"on": "ymd",
"groupby": ["extra_data.content"]
}
],
"encoding": {
"x": {
"field": "ymd",
"type": "temporal"
},
"y": {
"field": "hm",
"type": "temporal"
},
"color": {
"field": "extra_data.content",
"type": "nominal"
}
}
}
听起来您想要黄土变换的 groupby
参数以及颜色编码。它可能看起来像这样:
{
"mark": "line",
"transform": [
{
"loess": "hm",
"on": "ymd",
"groupby": ["extradata.content"]
}
],
"encoding": {
"x": {
"field": "ymd",
"type": "temporal"
},
"y": {
"field": "hm",
"type": "temporal"
},
"color": {
"field": "extradata.content",
"type": "nominal"
}
}
}
我正在使用 Vega Lite 绘制我吃饭的时间图表,并想要一条回归(黄土)线来显示每顿饭的一般时间。默认情况下,回归使用整个数据集并且只显示一行;我要三行,每餐一行(存储在字段extra_data.content
)。
我已经实现了我想做的事情,我将黄土层重复三次 (screenshot),但我正在尝试找到一种解决方案,在该解决方案中,同一层只写一次,然后自己重复三次。
解决后编辑!非常感谢@jakevdp的解答!这是我的工作代码;注意黄土上既有groupby
,又有color
渠道
{
"mark": "line",
"transform": [
{
"loess": "hm",
"on": "ymd",
"groupby": ["extra_data.content"]
}
],
"encoding": {
"x": {
"field": "ymd",
"type": "temporal"
},
"y": {
"field": "hm",
"type": "temporal"
},
"color": {
"field": "extra_data.content",
"type": "nominal"
}
}
}
听起来您想要黄土变换的 groupby
参数以及颜色编码。它可能看起来像这样:
{
"mark": "line",
"transform": [
{
"loess": "hm",
"on": "ymd",
"groupby": ["extradata.content"]
}
],
"encoding": {
"x": {
"field": "ymd",
"type": "temporal"
},
"y": {
"field": "hm",
"type": "temporal"
},
"color": {
"field": "extradata.content",
"type": "nominal"
}
}
}