- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果这非常简单,我们深表歉意。其实我希望它会是这样!
我正在尝试从文本动态创建图像,然后可以调整图像大小并绘制(拉伸(stretch)或挤压)以生成图案类型的图表。
我开始使用图像(我使用 png()
和 ggplot()
生成的图像)并将它们绘制为 annotation_custom()
require(ggplot2)
require(grid)
require(gridExtra)
qplot(c(0,10),c(0,10)) +
annotation_custom(rasterGrob(image=readPNG("1999.png"),x=0,y=0,height=1,width=1,just=c("left","bottom")),
xmin=0,xmax=5,ymin=0,ymax=7.5)
生产:
这很好,但是如果图像大小不同,使用 png()
动态创建图像会很尴尬,而且将它们保存到文件中也很笨拙,所以我尝试看看是否可以我可以使用 textGrob:
myText<-"1000"
myTextGrob<-textGrob(myText,just=c("left","bottom"),gp=gpar(fontsize="100",col="red",fontfamily="Showcard Gothic"))
qplot(c(0,10),c(0,10))+annotation_custom(myTextGrob,0,0,0,0)
得到了这个,这很好,除了......
...似乎不可能以与 rasterGrob 相同的方式拉伸(stretch)和倾斜它,所以我的问题是 - 是否可以创建 textGrob 并将其强制为 rasterGrob?或者是否有另一种解决方案可以让我倾斜/拉伸(stretch) textGrob?
提前致谢!
最佳答案
如果不创建临时文件,这似乎并不容易。您可以将矢量路径与 grImport 包一起使用,而不是光栅文件。有两种导入文本的选项,
作为路径;它可以工作(下面的示例),但是没有明显的方法可以使用中间文件绕过 ps 到 xml 转换步骤
作为文本字符串;在这种情况下,xml 更短,可以直接从 R 创建,但不幸的是我找不到独立转换两个轴的方法。
library(grImport)
scale_text <- function(text="hello world", scale=4, tmp=tempfile()){
tmp.ps <- paste0(tmp, ".ps")
tmp.xml <- paste0(tmp, ".xml")
string.ps <- paste0('%!PS
/Courier % name the desired font
20 selectfont % choose the size in points and establish
% the font as the current one
1 ', scale, ' scale % scale axis
72 500 moveto % position the current point at
% coordinates 72, 500 (the origin is at the
% lower-left corner of the page)
(', text, ') show % stroke the text in parentheses
showpage % print all on the page
')
cat(string.ps, file=tmp.ps)
PostScriptTrace(tmp.ps, tmp.xml)
readPicture(tmp.xml)
}
hello <- scale_text()
grid.newpage()
grid.picture(hello)
关于r - 将 textGrob 转换为 imageGrob/rasterGrob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20211399/
我在画几个ggplot2对象并将它们放在 grid.arrange 上在对“pdf”设备的调用中。我发现如果我先对绘图进行光栅化,PDF 的性能会提高大约 10 亿倍(生成速度更快,渲染速度更快)。所
我一直在尝试在 gtable 单元格中指定 rasterGrob 的绝对位置,但没有成功。我希望能够使图像的范围与 y 轴上的值对齐。该脚本将钻芯图像与 ggplot2 方面绘制的多传感器数据对齐。例
我一直在尝试在 gtable 单元格中指定 rasterGrob 的绝对位置,但没有成功。我希望能够使图像的范围与 y 轴上的值对齐。该脚本将钻芯图像与 ggplot2 方面绘制的多传感器数据对齐。例
如果这非常简单,我们深表歉意。其实我希望它会是这样! 我正在尝试从文本动态创建图像,然后可以调整图像大小并绘制(拉伸(stretch)或挤压)以生成图案类型的图表。 我开始使用图像(我使用 png()
我是一名优秀的程序员,十分优秀!