对于Smoother线,是否可以通过数据的体积/密度来调整Smoother线的粗细?我经常使用 Smoother+Overlay 来检查独立分类变量如何影响时间趋势图中的相关连续变量。 但是我经常遇到的一个问题是,当不同的类别有不同的数据量时,即使一个类别有 200 个数据点而另一个类别有 4 个数据点,平滑线也一样大。 这会创建难以区分重要信号的繁忙图。 (如果我在 Overlay 角色中检查大量不同的自变量,则为每个变量排除小数据量组是很乏味的。)
有什么方法可以做类似的事情:如果数据量大,则使平滑线变粗,如果数据量少,则使线变细? (更好的是,如果线条根据两点之间的 deltaX 动态改变粗细:例如,如果一个类别有两个点相隔 1 天而另一个类别有两个点相隔 2 天,则第一个类别的平滑线将是〜两倍厚。)
这是我正在处理的“繁忙图表”类型:可变粗细线可以帮助我一眼就确定哪些信号很重要,哪些信号不重要。

Re: 对于平滑线,数据的体积/密度可以用来调整平滑线的粗细吗?@马克施瓦布,
我建议您只使用分类变量并选择显示选项:复选框和按计数排序
请注意,您将获得 N,您可以轻松选择多个组。 这

Graph Builder(
Size( 526, 474 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 22 ) ), Smoother( X, Y, Legend( 23 ) ) ),
Local Data Filter(
Add Filter(
columns( :sex ),
Display( :sex, "Check Box Display" ),
Order By Count( :sex )
)
)
);
希望有所帮助。
Re: 对于平滑线,数据的体积/密度可以用来调整平滑线的粗细吗?谢谢你的方法,太棒了! 当列的数据类型 = 字符时,有什么办法让它工作吗? 我已经让你的方法在数据类型为数字时起作用,但是当我右键单击数据类型为字符的列时,我没有看到聚合选项。
Re: 对于平滑线,数据的体积/密度可以用来调整平滑线的粗细吗?@马克施瓦布,
本地数据过滤器,尤其是列转换对您的任务非常有用。 请看下面的屏幕截图。 您可以手动执行此操作
- 创建您的 GraphBuilder 图
- 添加本地数据过滤器
- 选择您的类别/覆盖/GroupBy 列,在此示例中年龄. 右键单击并选择通过...分组
- 再次右键单击并选择聚合 > 计数. 如果您有缺失数据,请选择您的是变量并选择聚合>计数
- 点击加号,添加此过滤器。
见第二张截图图片。 您可以滑动条形以获得所需的相对大小。 或者甚至单独查看低密度数据。


作为@txnelson ,吉姆,提到这很容易编写脚本。 见下文。也就是说,“N”或计数不是最好的过滤器。您的数据可能包含 200 个 12 岁儿童的体重与身高值,而 180 个值全部针对 50< 身高 < 53。 换句话说,没有代表高个子的孩子。
这不是您想要的,但是在“混乱”的图表上寻找信息块时,像这样的数据过滤器可能非常有用。 请注意,您还可以制作上下文过滤器,其中过滤器适用于多个图形。祝您搜索现在可以使用的东西好运。
Graph Builder(
Size( 615, 481 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :age ) ),
Elements( Points( X, Y, Legend( 50 ) ), Smoother( X, Y, Legend( 51 ) ) ),
Local Data Filter(
Add Filter(
columns(
Transform Column(
"Count[weight][age]",
Formula( Col Number( :weight, :age ) )
)
),
)
)
);
Re: 对于平滑线,数据的体积/密度可以用来调整平滑线的粗细吗?除了手动更改线宽外,一旦显示图形,就必须编写脚本来执行此操作。如果你是编剧,做这件事应该不是什么大事。下面是一个示例硬连线脚本,可让您了解如何处理任务。它使用 Big Class 样本数据表作为数据源

Graph Builder(
Variables( X( :weight ), Y( :height ), Overlay( :age ) ),
Elements( Points( X, Y, Legend( 9 ) ), Smoother( X, Y, Legend( 10 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
10,
Properties( 0, {Line Width( 4 )}, Item ID( "12", 1 ) ),
Properties( 1, {Line Width( 12 )}, Item ID( "13", 1 ) )
)}
)
)
);