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 |
绘图窗口的宽度和高度,以英寸为单位。如果是 |
pointsize |
要使用的默认磅值。默认为 |
gamma |
伽马校正模糊因子。 R中的颜色是sRGB;如果您的显示器不符合 sRGB,您可以通过调整此参数对 RGB 通道应用额外的伽玛校正来改进。默认为 1(无额外伽马校正)。 |
bg |
color,初始背景颜色。默认 |
canvas |
颜色。画布的颜色,只有背景色透明时才可见。应该是不透明的颜色(任何 alpha 值都将被忽略)。默认 |
fonts |
仅适用于 |
family |
默认系列:长度为 1 的字符串。这主要用于基于 cairo 的设备,但对于 |
xpos, ypos |
整数:窗口左上角的初始位置,以像素为单位。负值来自对角,例如 |
title |
字符串,最多 100 个字节。使用默认值 |
type |
字符串,其中之一 |
antialias |
对于 cairo 类型,要使用的抗锯齿类型(如果有)。 |
symbolfamily |
仅适用于基于 cairo 的设备:长度为 1 的字符串,指定用作 "symbol" 字体的字体系列(例如,用于 plotmath 输出)。默认值为"default",这意味着R将根据图形设备函数选择默认的"symbol"字体。 |
reset |
逻辑:默认值应该重置为默认值吗? |
... |
|
细节
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.hold 和 dev.flush 。 type = "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 参数选择,然后通过 par 或 gpar 进行选择。存在三个与设备无关的字体系列的映射,"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.options 的 colortype 参数覆盖。注意:所有X11和type = "Xlib"、bmp、jpeg、png和tiff设备共享一个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”、StaticGray 和 MonoChrome 视觉效果:“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)
也可以看看
相关用法
- R xyTable (x,y) 点的重数,例如,对于向日葵图
- R xyz.coords 提取绘图结构
- R xy.coords 提取绘图结构
- R xfig XFig图形设备
- R axisTicks 计算漂亮的轴刻度
- R hcl HCL 颜色规格
- R quartzFonts 石英字体
- R as.graphicsAnnot 强制图形注释对象
- R dev.interactive 当前图形设备是否具有交互性?
- R chull 计算一组点的凸包
- R convertColor 在色彩空间之间转换
- R X11Fonts X11 字体
- R plotmath R 中的数学注释
- R dev.capture 将设备输出捕获为光栅图像
- R dev.size 查找设备表面的尺寸
- R pdf.options 设置/查看 pdf 参数默认值的辅助函数
- R densCols 平滑密度图的颜色
- R windows Windows 图形设备
- R rgb RGB 颜色规格
- R check.options 设置带有一致性检查的选项
- R msgWindow 操纵窗口
- R dev.flush 保持或刷新屏幕图形设备上的输出
- R n2mfrow 根据绘图数计算默认“mfrow”
- R dev 控制多个设备
- R hsv HSV 颜色规格
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 X Window System Graphics (X11)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
