R/RStudio:图形缩放问题;高dpi屏幕上的模糊性

R/RStudio:图形缩放问题;高dpi屏幕上的模糊性,r,graphics,ggplot2,rstudio,highdpi,R,Graphics,Ggplot2,Rstudio,Highdpi,在高DPI 4K监视器上,似乎在Windows下,RStudio绘图窗口使用像素加倍来使绘图清晰可见(我使用的是RStudio 0.99.483和R 3.2.2以及Windows 8.1,但在Windows 10下的结果相同)。这会导致非常模糊的文本和图形(加上Cleartype不能很好地发挥作用,因为它会在像素倍增后产生彩色条纹) 例如: qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size =

在高DPI 4K监视器上,似乎在Windows下,RStudio绘图窗口使用像素加倍来使绘图清晰可见(我使用的是RStudio 0.99.483和R 3.2.2以及Windows 8.1,但在Windows 10下的结果相同)。这会导致非常模糊的文本和图形(加上Cleartype不能很好地发挥作用,因为它会在像素倍增后产生彩色条纹)

例如:

qplot(Sepal.Length, Petal.Length, data = iris, color = Species, 
       size = Petal.Width, alpha = I(0.7))
将RStudio的放大设置为200%时,我会看到一幅模糊的图像(带有彩色条纹),就像

反过来,完全缩小会给我一个清晰的图像,但文字、打印符号和菜单项太小:

有人能推荐一个解决这个问题的方法吗? RStudio内部使用什么web浏览器来显示绘图窗口?那前面有什么可以修的吗?这个问题应该在什么水平上解决?RStudio或R本身(在
grDevices
grid
中)。只是不确定在什么程度上可以修补。。。有什么想法吗

编辑:使用

windows()
qplot(Sepal.Length, Petal.Length, data = iris, color = Species, 
       size = Petal.Width, alpha = I(0.7))
给我一个清晰的印象:

但令人烦恼的是,默认窗口非常小(是普通显示器的两倍,面积为1/4),如果我缩放它,文本的大小将相对于其余部分发生变化(指定宽度=XXX和高度=XX具有相同的效果)。:-)

在windows调用中使用附加选项
xpinch
ypinch
会使我的窗口变大,例如:

windows(xpinch=340, ypinch=340)
qplot(Sepal.Length, Petal.Length, data = iris, color = Species, 
       size = Petal.Width, alpha = I(0.7))

但字体的缩放方式似乎与其他字体不同,打印符号也会稍微变大(虽然打印画布的缩放方式似乎不错,但线条宽度却没有)。不确定问题出在哪里-是
ggplot2
还是
grid
输出应该更好地适应
xpinch
ypinch
设备的设置,还是更低级的设置
x11()
似乎没有任何dpi设置,而
quartz()
有(参数
dpi=…
)-尽管我无法测试后者,因为我没有Mac。。。我猜问题的一部分是这些不同的设备似乎没有一个一致的设置来指定dpi,所以可能并不奇怪它们被特定的软件包严重地考虑到了。。。不确定RStudio图形设备


简言之,在不同的图形设备上,用不同的dpi制作具有良好和可重复缩放的R图似乎相当困难。。。除了导出为PDF并查看它之外,还有什么想法吗?

据我所知,DPI较高的屏幕在许多应用程序上都存在显示缩放问题。您是否尝试过禁用缩放功能?您可以按如下方式进行操作:

  • 右键单击应用程序图标(R和Rstudio)并选择属性
  • 转到“兼容性”选项卡并选择显示“禁用高DPI设置上的显示缩放”的框
  • 单击应用并确定
  • 重新启动RStudio/R
我希望这能帮助你解决问题。如果我错误地理解了问题,或者您已经尝试过了,请道歉


对不起,我只能发布一个答案,不能发表评论。我还没有足够的声誉

也许它已经过时了,但我通过关闭兼容模式并将高DPI扩展行为覆盖到系统(增强)来解决它

您是否尝试过其他设备(例如quartz/x11/window)?这可以让你确定这是否是一个Rstudio问题(在这种情况下,最好直接与他们讨论)。我也尝试了windows()设备,这看起来还可以,只是它根本不会放大(即它根本不会进行任何dpi缩放,使用参数xpinch和ypinch会弄乱字体的缩放)ggplot2努力坚持字体、线宽等的绝对单位(mm)。因此,不能轻松调整大小也就不足为奇了:这是由设计固定的。您需要的是一个设备/查看器,它提供独立于图形引擎的绘图后缩放。pdf/svg是显而易见的解决方案(因为它们在放大时看起来不会像素化),但可能还有其他解决方案可以尝试,例如用于交互使用的Acinonx或Cairo。只是尝试了CairoWin()和Acinonx的idev(),可惜也没有运气。。。真遗憾,这些图形引擎似乎都不支持缩放。。。现在我必须坚持使用pdf、svg或ppt导出,不用担心。。。再次感谢你的建议!希望有人能在不久的将来想出一个解决办法!:-)Rstudio似乎已经用作rmarkdown文档的pdf查看器,因此也许将图形pdf输出重定向到新窗口并在调整窗口大小时触发replotting(这几乎与标准R图形中的“交互式”一样)并不难。是的,已经尝试过了,但不幸的是没有帮助!在我看来,让R图正确呈现的最简单的修复方法是始终将它们呈现为PDF格式,然后使用一个像样的PDF查看器,而不是这个默认的绘图窗口,它显然使用HTML/web查看器。