Incrustar una imagen de una tabla de datos en un gráfico.
@Neo preguntó : ¿Es posible obtener una fila y columnas de una tabla abierta como inserción en un gráfico?
fontscale = 2; // scale up as needed. make the font bigger to make the image bigger.
picScale = .42; // scale down to fit. less than one to prevent pixelation.
topFraction = 0.95; // 0 at bottom, 1 at top of frame
bottomFraction = 0.05; // 0 at left, 1 at right of frame
dt = Open( "$sample_data/big class.jmp" );
// take a picture of the data
box = dt << journal;
oldFont = Get Preferences( fonts );
Preferences( Fonts( English( Text Font( "Segoe UI", 9 * fontscale ), Heading Font( "Segoe UI", 12 * fontscale, "Bold" ), ) ) );
pic = box << getpicture;
{xPixPixels, yPicPixels} = pic << size;
box << closewindow;
Eval( oldFont );
// make the graph
gb = Graph Builder(
Show Control Panel( 0 ),
Size( 1158, 894 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
// add the image
{xFramePixels, yFramePixels} = (Report( gb )[FrameBox( 1 )]) << getsize;
xmin = (Report( gb )[axisBox( 1 )]) << getmin;
xmax = (Report( gb )[axisBox( 1 )]) << getmax;
xUnitsPerPixel = (xmax - xmin) / xFramePixels;
ymin = (Report( gb )[axisBox( 2 )]) << getmin;
ymax = (Report( gb )[axisBox( 2 )]) << getmax;
yUnitsPerPixel = (ymax - ymin) / yFramePixels;
topPos = ymin + (ymax - ymin) * topFraction;
leftPos = xmin + (xmax - xmin) * bottomFraction;
bottomPos = topPos - picScale * yPicPixels * yUnitsPerPixel;
rightPos = leftPos + picScale * xPixPixels * xUnitsPerPixel;
(Report( gb )[FrameBox( 1 )]) << Add Image( image( pic ), bounds( top( topPos ), Left( leftPos ), bottom( bottomPos ), Right( rightPos ) ) );
// clean up. this will capture a picture and close the report and data table
gb << savepicture( "$temp/example.png" );
gb << closewindow;
Close( dt, nosave );
Open( "$temp/example.png" );
A picture of a journaled data table embedded in a graph.Una imagen de una tabla de datos con registro incrustada en un gráfico.
Si hace clic derecho -> Personalizar el gráfico, podrá ver que el comportamiento predeterminado de las imágenes las coloca detrás del gráfico.
The list items are drawn in order from top to bottom (painter's algorithm.) The picture is below the graph.Los elementos de la lista se dibujan en orden de arriba a abajo (algoritmo del pintor). La imagen está debajo del gráfico.
Puedes mover la imagen para que se dibuje después del gráfico, pero eso generalmente no será deseable.
The picture has a solid white background that blocks the graph.La imagen tiene un fondo blanco sólido que bloquea el gráfico.
Sé que se sale un poco del tema original, pero ¿alguna vez JMP consideró agregar suavizadores monótonos en Graph Builder? Sería una buena opción para situaciones como esta en las que tenemos una idea bastante clara de que la relación debería ser monótona.