R / RStudio: проблемы с масштабированием и размытость графика на экранах с высоким разрешением

На мониторах с высоким разрешением 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 для внутреннего отображения окна графика? Можно ли что-то исправить на этом фронте? На каком уровне это должно быть исправлено? RStudio или сам R (в grDevices или grid??). Просто не совсем уверен, на каком уровне это можно исправить... Есть мысли?

РЕДАКТИРОВАТЬ: используя

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

дает мне четкое изображение: введите здесь описание изображения

но с досадой, что окно по умолчанию тогда совсем маленькое (в два раза меньше, чем на обычном мониторе, 1/4 по площади), и что если я его масштабирую, то размер текста изменится относительно остальных( указание width=XXX и height=XX имеет тот же эффект). Итак, это возвращается к моей проблеме с масштабированием графов R. :-)

Использование дополнительных параметров xpinch и ypinch в вызове Windows увеличивает мое окно, например. :

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 устройства windows(), или это что-то более низкого уровня. x11(), похоже, не имеет настроек dpi, тогда как quartz() имеет (аргумент dpi=...) - хотя я не могу проверить последнее, так как у меня нет Mac... Думаю, часть проблемы в том, что эти разные устройства не имеют Похоже, что у них нет постоянной настройки для указания dpi, поэтому, возможно, неудивительно, что они плохо учитываются конкретными пакетами ... Не уверен насчет графического устройства RStudio ...

Короче говоря, довольно сложно сделать R-графики с хорошим и воспроизводимым масштабированием на разных графических устройствах с разным разрешением ... Есть какие-нибудь мысли, кроме экспорта в PDF и просмотра этого?


person Tom Wenseleers    schedule 05.09.2015    source источник
comment
вы пробовали другие устройства (например, кварц/x11/window)? Это позволит вам определить, является ли это проблемой Rstudio (в этом случае, вероятно, лучше обсудить это с ними напрямую).   -  person baptiste    schedule 08.09.2015
comment
Я только что попробовал устройство windows(), и это выглядит нормально, за исключением того, что оно вообще не масштабируется (т.е. оно просто не выполняет никакого масштабирования dpi, а использование аргументов xpinch и ypinch портит масштабирование шрифтов )   -  person Tom Wenseleers    schedule 08.09.2015
comment
ggplot2 изо всех сил старается придерживаться абсолютных единиц (мм) для шрифтов, ширины линий и т. д., поэтому неудивительно, что вы не можете легко изменить их размер: это фиксировано дизайном. Что вам нужно, так это устройство/средство просмотра, которое обеспечивает масштабирование после рисования независимо от графического движка. pdf/svg являются очевидными решениями (потому что они не будут выглядеть пикселизированными при увеличении), но можно попробовать и другие, например. Acinonyx или Cairo для интерактивного использования.   -  person baptiste    schedule 08.09.2015
comment
Только что попробовал с CairoWin() и idev() от Acinonyx, и, увы, тоже не повезло... Настоящий позор, что масштабирование, похоже, не поддерживается ни одним из этих графических движков... Мне придется придерживаться pdf, svg или ppt, тогда пока не беспокойтесь... И еще раз спасибо за совет! Надеюсь, кто-то придумает решение в не столь отдаленном будущем! :-)   -  person Tom Wenseleers    schedule 09.09.2015
comment
Rstudio, похоже, уже использует pdf.js в качестве средства просмотра PDF для документов rmarkdown, так что, возможно, это было бы не так сложно перенаправить вывод графического pdf в новое окно и запускать повторную прорисовку всякий раз, когда размер окна изменяется (это почти так же интерактивно, как и в стандартной графике R)   -  person baptiste    schedule 09.09.2015
comment
Да, что-то подобное может быть очень хорошей идеей! Или, может быть, перенаправить вывод SVG в окно браузера...   -  person Tom Wenseleers    schedule 09.09.2015


Ответы (2)


Насколько я знаю, экраны с более высоким разрешением имеют проблемы с масштабированием экрана во многих приложениях. Вы пробовали отключить масштабирование? Вы можете сделать это следующим образом:

  • Щелкните правой кнопкой мыши значок приложения (R и Rstudio) и выберите «Свойства».
  • Перейдите на вкладку «Совместимость» и установите флажок «Отключить масштабирование экрана при настройках с высоким разрешением».
  • Нажмите «Применить» и «ОК».
  • Перезапустите RStudio/R.

Я надеюсь, что это может помочь вашей проблеме. Извините, если я неправильно понимаю проблему или если вы уже пробовали это.

P.s. извините, я могу опубликовать только ответ, а не комментарий. У меня пока недостаточно репутации

person Tung Linh    schedule 30.06.2016
comment
Да пробовал уже, но не помогло к сожалению! На мой взгляд, самым простым решением для правильного отображения графиков R было бы всегда отображать их в виде PDF-файлов, а затем использовать приличную программу просмотра PDF вместо этого окна графика по умолчанию, которое, по-видимому, использует HTML/веб-просмотрщик. - person Tom Wenseleers; 30.06.2016

Возможно, это уже устарело, но мне удалось решить эту проблему, отключив режим совместимости и включив переопределение поведения масштабирования с высоким DPI в System (Enhanced)

person Brooky    schedule 11.01.2018