当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R x11 X 窗口系统图形 (X11)


R语言 x11 位于 grDevices 包(package)。

说明

在 Windows 上,

X11()x11() 函数是 windows() 的简单包装,以方便历史兼容性:在大多数情况下,调用 x11()X11() 可以打开交互式图形设备。

R在 3.6.0 之前的版本中,Windows 版本的形式参数列表较短。因此,呼吁X11(*)有参数应该名字它们是为了向后兼容。

以下几乎所有信息都不适用于 Windows。

在 Unix 类系统上

X11 启动 X Window 系统(版本 11)的图形设备驱动程序。这只能在有权访问 X 服务器的计算机/帐户上完成。

x11 被识别为 X11 的同义词。

R函数是两个设备的包装器,一个基于 Xlib (https://en.wikipedia.org/wiki/Xlib)和一个使用 cairography 的(https://www.cairographics.org)。

用法

X11(display = "", width, height, pointsize, gamma, bg, canvas,
    fonts, family, xpos, ypos, title, type, antialias, symbolfamily)

X11.options(..., reset = FALSE)

参数

display

将出现图形窗口的显示器。默认是使用用户环境变量中的值DISPLAY。如果 X11 设备已在另一个显示器上打开,则此操作将被忽略(并带有警告)。

width, height

绘图窗口的宽度和高度,以英寸为单位。如果是 NA ,则从资源中获取,如果未指定,则默认为 7 英寸。另请参阅“资源”。

pointsize

要使用的默认磅值。默认为 12

gamma

伽马校正模糊因子。 R中的颜色是sRGB;如果您的显示器不符合 sRGB,您可以通过调整此参数对 RGB 通道应用额外的伽玛校正来改进。默认为 1(无额外伽马校正)。

bg

color,初始背景颜色。默认"transparent"

canvas

颜色。画布的颜色,只有背景色透明时才可见。应该是不透明的颜色(任何 alpha 值都将被忽略)。默认"white"

fonts

仅适用于 type = "Xlib":将替换粗细、倾斜和大小的 X11 字体说明字符串。有两种,第一个用于字体 1 至 4,第二个用于字体 5(符号字体)。请参阅“字体”部分。

family

默认系列:长度为 1 的字符串。这主要用于基于 cairo 的设备,但对于 type = "Xlib"X11Fonts() 数据库用于将系列名称映射到 fonts (并且此参数优先于该参数)。

xpos, ypos

整数:窗口左上角的初始位置,以像素为单位。负值来自对角,例如xpos = -100 表示右上角距离屏幕右边应为 100 像素。如果NA(默认值),则连续设备从左上角开始以 20 个像素为级联。另请参阅“资源”。

title

字符串,最多 100 个字节。使用默认值 "" ,在内部创建合适的标题。整数的 C 样式格式将替换为设备号(有关更多详细信息,请参阅 postscriptfile 参数)。如何处理非 ASCII 标题取决于实现。

type

字符串,其中之一"Xlib","cairo","nbcairo"或者"dbcairo"。如果系统编译时不支持 cairgraphics,则只有第一个可用。默认为"cairo"其中R是使用构建的pangocairo(macOS 上通常不是这种情况),否则"Xlib".

antialias

对于 cairo 类型,要使用的抗锯齿类型(如果有)。 c("default", "none", "gray", "subpixel") 之一。

symbolfamily

仅适用于基于 cairo 的设备:长度为 1 的字符串,指定用作 "symbol" 字体的字体系列(例如,用于 plotmath 输出)。默认值为"default",这意味着R将根据图形设备函数选择默认的"symbol"字体。

reset

逻辑:默认值应该重置为默认值吗?

...

X11 的任何参数,加上 colortypemaxcubesize(请参阅“颜色渲染”部分)。

细节

X11 的所有参数的默认值均由 X11.options 设置:“Arguments”部分提供“factory-fresh”默认值。

初始大小和位置只是提示,窗口管理器可能不会执行操作。此外,某些系统(尤其是笔记本电脑)被设置为具有与物理屏幕不同尺寸的屏幕。

选项type在两个独立的设备之间进行选择:R可以在两者都不支持的情况下构建,type = "Xlib"或两者。如果两者都可用,则类型"cairo","nbcairo""dbcairo"提供

  • 文本和线条的抗锯齿。

  • 半透明的颜色。

  • 可缩放文本,包括 4.5 pt 等尺寸。

  • 完全支持 UTF-8,因此在具有合适字体的系统上,您可以在单个图形上以多种语言绘制(即使在非 UTF-8 语言环境中,这也可以工作)。输出应该是locale-independent。

基于开罗的设备有三种变体。 type = "nbcairo" 没有缓冲。 type = "cairo" 有一些缓冲,并支持 dev.holddev.flushtype = "dbcairo" 缓冲输出并大约每 100 毫秒更新一次屏幕(默认情况下)。刷新间隔可以通过例如设置(以秒为单位) options(X11updates = 0.25):打开设备时参考该值。仅每 50 毫秒(最多)查找一次更新,并且在繁重的图形计算期间仅每 500 毫秒查找一次更新。

哪个版本最快取决于 X11 连接和绘图类型。您可能希望使用缓冲类型,除非在 X 服务器上使用后备存储(例如,它始终位于 x86_64 macOS XQuartz 服务器上),否则窗口暴露时重新绘制会很慢。在慢速连接上,type = "dbcairo" 可能会提供最佳性能。

由于没有 Pango 的 macOS 上的字体选择已知问题(例如,大多数 CRAN 发行版),type = "cairo" 不是默认值。这些问题包括混合粗体和斜体(已解决)、选择不正确的字形以及丑陋或缺失的符号字形。

所有使用 X11 服务器的设备(包括 type = "Xlib" 版本的位图设备,例如 png )共享内部结构,这意味着它们必须使用相同的 display 和视觉。如果要更改显示,请先关闭所有此类设备。

显示的光标指示设备的状态。如果处于静止状态,则光标是箭头:当使用定位器时,它是十字准线光标;当绘图计算正在进行时(并且可以检测到),它是监视光标。 (显示的确切光标取决于所使用的窗口管理器。)

X11 字体

本节仅适用于type = "Xlib"

设备的初始/默认字体系列可以通过 fonts 参数指定,但如果指定了与设备无关的 R 图形字体系列(例如,通过图形包中的 par(family =)),则 X11 设备将使用X11 字体数据库(请参阅 X11Fonts )将 R 图形字体系列转换为 X11 特定的字体系列说明。如果 family 作为参数提供,则使用 X11 字体数据库对其进行转换,否则使用参数 fonts (默认值由 X11.options 给出)。

X11 通过匹配模式来选择字体,它很可能会选择错误编码的字体或不包含您的语言的字形(在 iso10646-1 字体中尤其常见)。

fonts 参数是一个二元素字符向量,第一个元素对于成功使用非西欧字体至关重要。已证明有用的设置包括

"-*-mincho-%s-%s-*-*-%d-*-*-*-*-*-*-*" 适用于 CJK 语言,"-cronyx-helvetica-%s-%s-*-*-%d-*-*-*-*-*-*-*" 适用于俄语。

对于 UTF-8 语言环境, XLC_LOCALE 数据库提供字符编码之间的映射,您可能需要为您的语言环境添加一个条目(例如,Fedora Core 3 缺少 ru_RU.utf8 条目)。

开罗字体

基于 cairgraphics 的设备直接使用字体系列名称,例如 "Helvetica" ,最初可以通过 family 参数选择,然后通过 pargpar 进行选择。存在三个与设备无关的字体系列的映射,"sans" 用于 sans-serif 字体(到 "Helvetica" ),"serif" 用于衬线字体(到 "Times" ),"mono" 用于等宽字体(到"Courier")。

字体选择由Pango(通常通过 fontconfig) 或者fontconfig(在 macOS 上,也许在其他地方)。结果取决于运行系统上安装的字体R- 设置环境变量FC_DEBUG到 1 通常允许对选择过程进行一些跟踪。

当安装高质量可缩放字体(通常为 Type 1 或 TrueType 格式)时,此方法效果最佳:请参阅“R 安装和管理”手册,了解有关如何获取和安装此类字体的建议。目前,使用 TrueType 字体将实现最佳渲染(包括使用字距调整):请参阅https://www.freedesktop.org/software/fontconfig/fontconfig-user.html 了解如何设置系统以首选它们。默认系列 ( "Helvetica" ) 可能不使用字距调整:如果安装了它们,则应该使用 "Arial""DejaVu Sans""Liberation Sans" (也许还有 "FreeSans" )。对于那些喜欢带衬线字体的人,请尝试 "Times New Roman""DejaVu Serif""Liberation Serif" 。要匹配 LaTeX 文本,请使用类似 "CM Roman" 的内容。

从版本 31 开始的 Fedora 系统不喜欢用于渲染符号的默认 "symbol" 字体系列(例如 plotmath )。对于这些系统,用户应通过 symbolfamily 指定不同的字体。也可以通过 X11.options 更改默认值。

符号渲染不正确的问题(例如quote(pi)expression(10^degree))已在安装了 Wine 符号字体的 Linux 系统上看到 -fontconfig然后更喜欢这个并误解它的编码。将以下行添加到‘〜/.fonts.conf' 或者 '/etc/fonts/local.conf’ 可以通过首选 URW Type 1 符号字体来规避此问题。

<fontconfig>
<match target="pattern">
  <test name="family"><string>Symbol</string></test>
  <edit name="family" mode="prepend" binding="same">
    <string>Standard Symbols L</string>
  </edit>
</match>
</fontconfig>

对此的测试是在命令行运行fc-match Symbol。如果这表明symbol.ttf这可能是 Wine 符号字体 - 使用locate symbol.ttf查看是否从包含“的目录中找到”⁠酒⁠' 在名字里。

资源

标准 X11 资源geometry可用于指定窗口位置和/或大小,但将被指定为参数或非参数的值覆盖NA默认设置在X11.options。寻找的类是R_x11。请注意,资源指定的宽度和高度以像素为单位,而不是以英寸为单位。参见例如‘⁠人X⁠' (或者https://www.x.org/releases/current/)。 ‘中的示例行~/.Xresources' 可能

R_x11*geometry: 900x900-0+0

它指定屏幕右上角的 900 x 900 像素窗口。

显色性

X11支持多种‘visual’类型,现在几乎所有系统都支持‘truecolor’X11将默认使用。这使用任何 RGB 颜色的直接规范,最高可达支持的深度(通常每种颜色 8 位)。其他视觉效果使用调色板来支持更少的颜色,仅灰色甚至仅黑色/白色。调色板在所有 X11 客户端之间共享,因此有必要限制 X11 客户端使用的颜色数量。R.

type = "Xlib" 的默认设置是使用 X11 服务器视觉效果的最佳颜色模型:现在几乎总是‘truecolor’。这可以被 X11.optionscolortype 参数覆盖。注意:所有X11type = "Xlib"bmpjpegpngtiff设备共享一个colortype,该colortype在第一个打开的设备时设置。要更改 colortype 您需要关闭所有打开的此类设备,然后使用 X11.options(colortype =)

"true""pseudo""gray""mono" 的顺序尝试颜色类型类型(仅限黑色或白色)。值 "pseudo""pseudo.cube" 为伪彩色视觉效果提供两种颜色策略。第一个策略提供 on-demand 颜色分配,它会生成精确的颜色,直到显示器的颜色资源耗尽(此时绘图将失败)。第二个分配(如果可能)标准颜色立方体,并且请求的颜色由立方体中最接近的值近似。

colortype 等于 "pseudo.cube""gray" 时,会依次尝试较小的调色板,直到完全分配一个调色板。如果最小尝试分配失败,设备将恢复为 "mono" 。对于 "gray",对于深度大于 8 的显示器,搜索从 256 灰度开始,否则使用一半的可用颜色。对于"pseudo.cube",最大立方体大小由X11.options(maxcolorsize =) 设置,默认为 256。通过该设置,尝试的最大立方体为 RGB 每个级别 4 个级别,在调色板中使用 64 种颜色。

基于 caairgraphics 的设备很可能只能在“TrueColor”视觉效果下工作(或正确工作),尽管原则上这取决于 cairo 安装:如果遇到任何其他视觉效果,则会发出警告。

type = "Xlib" 支持“TrueColor”、“PseudoColor”、“GrayScale”、StaticGrayMonoChrome 视觉效果:“StaticColor”和“DirectColor”视觉效果仅以黑/白处理。

抗锯齿

抗锯齿仅支持基于 cairgraphics 的设备,并且适用于图形和字体。它通常更适合线条和文本,但可能会导致填充出现不良效果,例如用于image 绘图,因此永远不会用于填充。

antialias = "default" 原则上依赖于平台,但似乎通常等同于 antialias = "gray"

惯例

本节介绍“R Internals”手册中规定的图形设备约定的实现。

  • 默认设备尺寸为 7 平方英寸。

  • 字体大小以大点为单位。

  • 默认字体系列是 Helvetica。

  • 线宽以 1/96 英寸为单位,type = "Xlib" 至少为 1 个像素,否则为 0.01。

  • 对于type = "Xlib",圆半径以像素为单位,最小为 1。

  • 颜色由 X11 服务器解释,假定符合 sRGB。

警告

对所有 Unix 设备的支持是可选的,因此在包中 X11() 应在检查 capabilities("X11") 后有条件地使用。

例子

## Not run: 
if(.Platform$OS.type == "unix") { # Only on unix-alikes, possibly Mac,
## put something like this is your .Rprofile to customize the defaults
setHook(packageEvent("grDevices", "onLoad"),
        function(...) grDevices::X11.options(width = 8, height = 6, xpos = 0,
                                             pointsize = 10))
}
## End(Not run)

也可以看看

DevicesX11FontssavePlot

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 X Window System Graphics (X11)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。