这是我在R中编写的不同代码所遇到的问题。 基本上,我想生成一个显示图片的窗口(.png文件)。以下是this或this的指南,我想出了这样的代码:
library(tcltk)
tmpFile <- tempfile(fileext = ".png")
download.file("https://www.r-project.org/logo/Rlogo.png", tmpFile)
tcl("image","create","photo", "imageLogo", file=tmpFile)
win1 <- tktoplevel()
tkpack(ttklabel(win1, image="imageLogo", compound="image"))
这在Mac OS下运行正常,但在Linux和Windows上都没有,我在这里显示了这样的错误消息:
[tcl]无法识别图像文件中的数据
当我想显示图表时,我可以找到一些解决方法,例如使用包tkrplot
或igraph
。尽管如此,我真的很想知道为什么我在Linux或Windows上运行我的脚本时会遇到这样的错误,而在Mac OS上它运行得很好。
在此问题很明显的情况下道歉,但我没有发现任何与tcltk
包的潜在差异,具体取决于操作系统。
答案 0 :(得分:0)
Tk对PNG的原生支持在8.6中添加。在此之前,您需要将tkimg extension加载加载到Tk 中以添加所需的图像格式处理程序。如果您正在使用的Rcl正在使用的Tcl / Tk的安装,您可能可以使用它:
tclRequire("Img")
一旦你充分初始化了东西。是的,由于历史原因,内部使用的名称是“Img
”,但这是不可能搜索的! (这是关键的事情in this mailing list message from way back。)
但是,将Tcl和Tk的版本升级到8.6可能是一个更好的举措。
答案 1 :(得分:0)
最后还有一点,我想结束这个问题并总结一下我的问题所提出的不同建议:
MY_TCLTK
)并将路径放在安装包Tcl / Tk的位置。不用说,Tcl / Tk常用于R中以实现GUI;如果你必须通过非常复杂的程序来设置系统,那么这个包肯定会失去它的优势。