调整数据网格框的大小以排除空行和列嗨,
我正试图找到一种方法来拍摄数据表的填充单元格的快照(即没有任何侧面板,底部的空白行或右侧的空白列)。
我最近发现了数据网格框显示框,几乎可以让我做我想要的 - 但我需要一种方法来调整它的大小,以便填充的单元格网格完全填充它。我可以通过反复试验手动执行此操作,但我想自动执行此操作。
这可能吗?我附上一个示例脚本,说明我正在尝试做什么。
非常感谢
//程序开始;
名称默认为此处(1);
dt = Open(“$ SAMPLE_DATA / Popcorn.jmp”);
dt <<关闭侧面板; //我只想看数据网格;
//首先,我会给一些细胞着色以说明一些东西;
//任何低于9的产量都会涂成红色;
CellsToPaint = dt <<获取行所在(作为列(:yield)<9);
:yield << color cells(RGB Color(1,0,0),CellsToPaint);
//任何超过15的产量都会涂成绿色;
CellsToPaint = dt << get rows where(as column(:yield)> 15);
:yield << color cells(RGB Color(0,1,0),CellsToPaint);
//将它放入数据网格框中,以便将其复制为图片;
dgb =数据网格框(); dgb <<设置数据表(dt);
//如果我没有调整大小,会有额外的空白行和列可见;
//我可以手动缩小它 - 但是如果可以的话我想自动化这个位;
dgb << set width(325);
dgb << set height(340);
//让我们看看我现在得到了什么;
新窗口(“我的数据网格框”,dgb);
Path =“$ DESKTOP / snapshot.png”;
dgb << save picture(Path,“png”);
//在图片框内重新打开;
pb =图片框(open(Path,png));
//并显示最终图像;
新窗口(“我的快照”,面板框(“我的快照”,pb));
//程序结束;
Re:调整数据网格框的大小以排除空行和列是的,我虽然那些颜色的参考是有原因的:)。。。
虽然'NumberColBox()'和StringColBox()'理解'<< textColor()'和'<< backgroundColor()',但这些操作可能是人们所期望的。
关于操作侧板,如果您发现意外行为,请使用support@jmp.com。
Re:调整数据网格框的大小以排除空行和列嗨,伊恩 - 是的,我可以这样做;然而,问这个问题的根本动机是我想保留我在原始数据表中构建的单元格颜色。 我不认为我可以在表格盒中单独为单元格着色,就像我可以为数据表中的单元格着色一样,是吗?
令我困惑的是,当我最初在这个线程的顶部组装示例时,在我拍摄屏幕截图之前,数据表的侧面板总是应该被隐藏(因此“dt << close side panel”线)。 但是我刚刚发现我在那里犯了一个错误:那条线应该成为“dt << close side panels(1)”。 这似乎工作正常,但是当数据表随后被复制到数据网格框中时,侧面板有时(但不总是)重新出现。 我看到数据网格框也有一个“
非常感谢,
大卫
Re:调整数据网格框的大小以排除空行和列根据您描述所需内容的方式,您还可以尝试:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Popcorn.jmp" );
tb = TableBox();
for(c=1, c<=NCol(dt), c++,
thisCol = Column(dt, c);
if ((thisCol << getDataType) == "Numeric",
// Numeric column
tb << Append(NumberColBox(thisCol << getName, thisCol << getValues)),
// Assumed Character column
tb << Append(StringColBox(thisCol << getName, thisCol << getValues))
);
);
Close(dt, NoSave);
tb << savePicture("$DESKTOP/snapshot.png", "png");