안녕하세요,
데이터 테이블의 채워진 셀의 스냅 샷을 찍는 방법을 찾으려고합니다. 즉, 모든 측면 패널이 없거나 오른쪽의 빈 행이 빈 칸입니다.
나는 최근에 데이터 그리드 박스 (Data Grid Box) 디스플레이 박스를 발견했는데, 이는 내가 원하는 것을 거의 가능하게했다. 그러나 그것을 채워 넣은 셀의 그리드가 완전히 채워지도록 크기를 조절할 방법이 필요하다. 시행 착오를 통해이 작업을 수동으로 수행 할 수 있지만 자동으로 수행하고 싶습니다.
이것이 가능한가? 나는 내가하려고하는 것을 보여주는 샘플 스크립트 아래에 동봉한다.
많은 감사
// 프로그램 시작;
기본 이름은 여기에 있습니다 (1);
dt = Open ( "$ SAMPLE_DATA / Popcorn.jmp");
dt << 사이드 패널 닫기; // 데이터 그리드 만보고 싶습니다.
// 먼저 뭔가를 설명하기 위해 일부 셀을 색칠합니다.
// 9보다 작은 모든 항복은 빨간색으로 칠해집니다.
CellsToPaint = dt << 행을 가져옵니다 (열 (: yield) <9);
: <색상 셀 (RGB 색상 (1, 0, 0), CellsToPaint);
// 15보다 많은 수확물은 초록색으로 칠해진다;
CellsToPaint = dt << 행을 가져옵니다. where (as column (: yield)> 15);
: <색상 셀 (RGB 색상 (0, 1, 0), CellsToPaint);
// 그림으로 복사 할 수 있도록 데이터 격자 상자에 넣습니다.
dgb = 데이터 그리드 박스 (); dgb << 데이터 테이블 설정 (dt);
// 크기를 조정하지 않으면 여분의 빈 행과 열이 표시됩니다.
// 수동으로 수축시킬 수는 있지만 가능하다면이 비트를 자동화하고 싶습니다.
dgb << 너비 설정 (325);
dgb << 높이 설정 (340);
// 이제 내가 무엇을 가지고 있는지 보자.
새 창 ( "My Data Grid Box", dgb);
경로 = "$ DESKTOP / snapshot.png";
dgb << 그림 저장 (경로, "png");
// 그림 상자 안에서 다시 엽니 다.
pb = 그림 상자 (열린 (경로, png));
// 최종 이미지를 표시합니다.
새 창 ( "내 스냅 샷", 패널 ( "내 스냅 샷", pb));
// 프로그램의 끝;
예, 저는 색상에 대한 언급이 이유가 있었지만
. . .
'NumberColBox ()'및 StringColBox () '<<'textColor () '및'<< backgroundColor () '는 전체 열에서 예상대로 작동합니다.
사이드 패널을 조작하는 것과 관련하여 예기치 않은 동작이 나타나는 경우 support@jmp.com을 사용하십시오.
안녕하세요 이안 - 네, 그렇게 할 수있는 것은 사실입니다. 그러나 질문을하기위한 근본적인 동기는 원래 데이터 테이블에 내장 된 세포 착색을 유지하기 위해서였습니다. 데이터 표의 셀을 색칠하는 것과 같은 방식으로 표 상자에서 셀을 개별적으로 색칠 할 수 있다고 생각하지 않습니다. 맞습니까?
뭔가 혼란스러워하는 이유는 처음에이 스레드의 맨 위에 예제를 모았을 때 스크린 샷을 찍기 전에 데이터 테이블의 사이드 패널이 항상 숨겨져 있기 때문이었습니다 (그러므로 "dt << 닫기 사이드 패널" 선). 그러나 나는 그곳에서 오류를 발견했다. 영 "dt << 닫기 측면 패널 (1)"이됩니다. 이것은 제대로 작동하는 것처럼 보이지만, 데이터 테이블이 데이터 그리드 박스에 연속적으로 복사되면, 때로는 (항상은 아니지만) 사이드 패널이 다시 나타납니다. Data Grid Box에도 "<닫기 사이드 패널"속성이 있지만 데이터 그리드 상자에서 사이드 패널을 일관되게 제거하는 두 속성의 조합을 찾을 수 없습니다. "<< 옆면 패널"속성을 올바르게 사용하고 있습니까?
많은 감사합니다,
데이비드
필요한 것을 설명하는 방법을 감안할 때 다음과 같이 시도해 볼 수도 있습니다.
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");