将带有图像的列设置为标签时,将鼠标悬停在图表中的数据点上会显示resp。图片。是否可以为多个图像(在不同的列中)执行此操作?将多个列设置为标签不起作用,仅显示第一列的图像。
虽然这不是完整的解决方案,需要一些工作来满足您的需求Julia Gong制作了一个脚本,用于组合可以使用的图像 https://community.jmp.com/t5/JMP-Scripts/Banner-fying-Images/ta-p/23899
//open desired images to "blend" in order; here they are "image1" and "image2"
image1 = open("C:\Users\YOUR_NAME\Documents\YOUR_IMAGE.jpg", jpg);
image2 = open("C:\Users\YOUR_NAME\Documents\YOUR_OTHER_IMAGE.jpg", jpg);
//banner = open("C:\Users\jugong\Documents\Images\Banner.jpg", jpg); //template with correct W:H ratio
//retrieve dimensions of each picture
//{banCols, banRows} = banner << getSize();
banCols = 1400; banRows = 425; //correct dimensions; use other template if 1400x425 not desired
{image2Cols, image2Rows} = image2 << getSize();
{image1Cols, image1Rows} = image1 << getSize();
//determine the necessary H and W of resulting image (as big as possible)
image2ColsScaled = Floor(image2Cols / (banCols * 0.55)) * banCols;
image1ColsScaled = Floor(image1Cols / (banCols * 0.55)) * banCols;
image2RowsScaled = Floor(image2Rows / banRows) * banRows;
image1RowsScaled = Floor(image1Rows / banRows) * banRows;
width = min(image2ColsScaled, image1ColsScaled);
height = Round((banRows / banCols) * width);
//crop images (truncate, not resize)
image2A = newImage(image2);
image2A << crop(left(1), right(Round(width * 0.55)), top(0), bottom(height));
image1A = newImage(image1);
image1A << crop(left(1), right(Round(width * 0.55)), top(0), bottom(height));
{image2Cols, image2Rows} = image2A << getSize();
//new window(" ", image2A);
//retrieve r, g, b, matrices for original images
{r, g, b} = image2A << getPixels("rgb");
{r2, g2, b2} = image1A << getPixels("rgb");
//create matrices for new banner image
matR = J(height, width, 0);
matG = J(height, width, 0);
matB = J(height, width, 0);
matA = J(height, width, 1);
//position the two images in the new banner
//first image placed
for(i = 1, i <= height, i++,
for(j = 1, j <= image2Cols, j++,
matR[i, j] = r2[i, j];
matG[i, j] = g2[i, j];
matB[i, j] = b2[i, j];
);
);
//second image placed
for(i = 1, i <= height, i++,
for(j = image2Cols, j >= 1, j--,
matR[i, (j + (width - image2Cols))] = r[i, j];
matG[i, (j + (width - image2Cols))] = g[i, j];
matB[i, (j + (width - image2Cols))] = b[i, j];
);
);
//left side blending
for(i = 1, i <= height, i++,
for(j = 1, j <= width / 2, j++,
matA[i, j] = 1 - (j / width) * 2.2;
);
);
//right side blending
missed = 0;
for(i = 1, i <= height, i++,
index = 1;
for(j = width, j >= width / 2, j--,
matA[i, j] = 1 - (index / width) * 2.2;
index++;
if(matA[i, j] > 0.904, missed++;);
);
);
missed /= height;
//blending the middle
for(i = 1, i <= height, i++,
for(j = width / 2 - missed, j <= width / 2 + missed, j++,
matA[i, j] = 0.003;
);
);
//create new image and save to directory (if desired)
img = newImage("rgba", {matR, matG, matB, matA});
new window("LinkedIn Banner", img);
//img << saveImage("C:\Users\YOUR_NAME\Documents\YOUR_BANNER_NAME.png", png); //make sure to use png!
我将补充一点,我认为您应该将此建议添加到JMP愿望清单中,以便添加到将来的版本中
您可以随时尝试将图像一起添加到单个列中。 这可能需要一些工作,但它肯定可以编写脚本。 我不是在脚本中处理图像的专家,但我确信它是可行的。