2009-12-13 4 views
16

I ggplot2 Bibliothek bin mit und arbeite mit dem qplot Befehl ich weiß, ich kann mit dem folgenden Befehl nach meinem qplotqplot und Anti-Aliasing in R

ggsave(file="filename.png") 
meine Ausgabe als Anti-Aliasing-Bilddatei speichern

Aber wie wäre es mit meinem LCD-Display? Gibt es eine Möglichkeit, eine Grafik auf dem Monitor als Anti-Aliasing-Grpah zu sehen?

+0

Ich denke, das ist zwischen Ihnen und Ihrem Fenstermanager. –

+7

Gibt es eine Möglichkeit, R zu sagen, dass er meine Plotfenster anti-aliasiert? – Mark

Antwort

13

Unter Windows gibt es kein integriertes Anti-Aliasing. Ich weiß nicht, ob es für zukünftige Veröffentlichungen geplant ist oder nicht. Sie können ein Cairo-basiertes Grafikgerät von den Paketen oder Cairo erhalten; jedoch müssen Sie GTK+ zuerst installieren:

herunterladen und installieren Gtk+ 2.12.9 Runtime Environment Revision 2 von http://gladewin32.sourceforge.net/

Eine andere Möglichkeit wäre die Verwendung von Java-basierten Grafiken durch JGR (http://jgr.markushelbig.org/). Auch ein Qt-basiertes Gerät ist in Entwicklung, denke ich.

+0

Fantastisch, vielen Dank – Mark

+2

Ich habe Kairo installiert, ohne GTK + zu installieren, auf Windows 7 mit R 3.1.1 64-Bit. Antializing ist nett. – jnm2

3

Ok, habe ich gerade überprüft. Ich habe mich in meinem früheren Kommentar geirrt. Von help(x11) wo viele Details zur Verfügung steht - die neuen Kairo-basierte Geräte haben tun Anti-Aliasing zur Verfügung:

x11-Paket: grDevices R Dokumentation

X Window System Graphics

Beschreibung :

‘X11’ starts a graphics device driver for the X Window System 
(version 11). This can only be done on machines/accounts that 
have access to an X server. 

‘x11’ is recognized as a synonym for ‘X11’. 

Verbrauch:

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

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

Argumente:

[...]

fonts: X11 font description strings into which weight, slant and 
     size will be substituted. There are two, the first for fonts 
     1 to 4 and the second for font 5, the symbol font. See 
     section ‘Fonts’. 

[...]

antialias: for cairo types, the typeof anti-aliasing (if any) to be 
     used. One of ‘c("default", "none", "gray", "subpixel")’. 

[...]

Details:

The defaults for all of the arguments of ‘X11’ are set by 
‘X11.options’: the ‘Arguments’ section gives the ‘factory-fresh’ 
defaults. 

The initial size and position are only hints, and may not be acted 
on by the window manager. Also, some systems (especially laptops) 
are set up to appear to have a screen of a different size to the 
physical screen. 

Option ‘type’ selects between two separate devices: R can be built 
with support for neither, ‘type = "Xlib"’ or both. Where both are 
available, types ‘"cairo"’ and ‘"nbcairo"’ offer 

    * antialiasing of text and lines. 

    * translucent colours. 

    * scalable text, including to sizes like 4.5 pt. 

    * full support for UTF-8, so on systems with suitable fonts you 
     can plot in many languages on a single figure (and this will 
     work even in non-UTF-8 locales). The output should be 
     locale-independent. 

‘type = "nbcairo"’ is the same device as ‘type="cairo"’ without 
buffering: which is faster will depend on the X11 connection. 
Both will be slower than ‘type = "Xlib"’, especially on a slow X11 
connection as all the rendering is done on the machine running R 
rather than in the X server. 

All devices which use an X11 server (including the ‘type = "Xlib"’ 
versions of bitmap devices such as ‘png’) share internal 
structures, which means that they must use the same ‘display’ and 
visual. If you want to change display, first close all such 
devices. 

[... und mehr ...]

+0

Okay, jetzt ist hier meine Frage: Ich bekomme einen Fehler, wenn ich X11 (Typ = "Kairo") erhalte ich bekomme "Fehler in X11 (type =" cairo "): unbenutzte Argument (e) (type =" cairo ") "Ich habe cairo geladen, weiß aber nicht, wie ich mein X11 ändern kann. Ich verwende R 2.9.2 auf einem Win XP. Muss ich mein gesamtes System ausrangieren und einen Mac bekommen, um Anti-Aliasing auf meinem Display zu erhalten? – Mark

+0

Ich war irgendwie besorgt über diesen Teil. Ich weiß, dass Kairo von Gnome/Gtk kam und auf Linux zu Hause ist, aber ich dachte, das wäre plattformübergreifend. Was bekommst du, wenn du 'capabilities()' in deiner R-Session auf XP aufruft? Ich habe einen "Kairo" TRUE dort am Ende. –

+0

Ich bekomme FALSCH, aber trotzdem danke, sehr interessante Reise. Ich werde es später auf einem Ubuntu versuchen. Nochmals vielen Dank, dass Sie es sich angesehen haben. – Mark

12

Wie andere bereits erwähnt haben, verwendet Rs eingebautes Windows-Grafikgerät kein Anti-Aliasing. Aber heutzutage ist es einfach, das Cairo-Grafikgerät zu installieren, das funktioniert.

An der R-Konsole:

install.packages('Cairo',,'http://www.rforge.net/') 

Zum Test:

plot(rnorm(1000)) # non-antialiased (on Windows) 
library('Cairo') 
CairoWin() 
plot(rnorm(1000)) # antialiased! 

More

2

Wenn Sie Kairo installiert haben (die anderen Antworten sehen), es als anti- zu retten Alias ​​PNG, ändern Sie einfach Ihren Code zu:

ggsave(file="filename.png", type="cairo-png")

wie angegeben here.

Aber zu welchem ​​Zweck möchten Sie "eine Grafik auf dem Monitor als Anti-Alias-Grafik" oder "Anti-Alias-Plot-Fenster" sehen? Wenn du meinst wie im Plots-Fenster (Reiter) in RStudio, bin ich mir nicht sicher, ob das geht, es dient im Grunde nur als Vorschau. Ich schlage vor, Sie speichern das Diagramm in eine Datei und verwenden Sie dann diese Datei, um es anzuzeigen oder für einen anderen Zweck.