2012-09-27 10 views
5

çağırır. Örneğin,Ben bütün araziler için varsayılan renkleri ayarlamak istiyorum, benim günlük R etkileşimlerini kolaylaştırmak için

Şimdiye kadar, burada benim .Rprofile

setHook(packageEvent("grDevices", "onLoad"), 
    function(...) 
     grDevices::X11.options(width = 14, height = 8, type = "Xlib", xpos = 600,  ypos = 30, canvas = "grey87")) 

suppressPackageStartupMessages(require(Defaults)) 
suppressPackageStartupMessages(require(utils)) 
suppressPackageStartupMessages(require(graphics)) 

setDefaults("plot.default",frame.plot=FALSE, type='l', col=2) 

snippet'idir I (:-) ... gnuplot gibi) kırmızı çizgilerle yapılan tüm araziler istiyorum diyelim Ne burada yapılacak şudur: grDevices paketi (graphics paketini yükleyerek) yüklendiğinde , benim tercih parametrelerle X11.options çağırır: Ben uzak çağrıları yapıyorum çünkü (daha geniş bir kutu, açık gri arka plan, xlib görüşmeleri ve Benim mevcut ortamda cairo sadece çok yavaş (çözmek için başka bir sorun) Sonra sessizce 3 paket, Defaults, utils ve graphics. İkincisi, find işlev hata mesajından kaçınmak için gereklidir. Son olarak, setDefaults sihirli işlevi, dağılım grafiği işlevine plot.default 3 parametresini ayarlar. col numaralı 3. parametre, plot.default parametresi değil, par() işlevinden biridir.

Ama par ile setDefaults çağrı yapan ya çalışmaz. Herhangi bir çözüm açığız

... renk gibi

+0

'palette' .... ve plot.xy' üzerinde varsayılan ayarlayın: Sadece .Rprofile için bu satırı ekleyin durumda

(Kanca çalışmalar ?plot.new ve ?setHook belgelenir) '... –

+0

(bu düşündüğümden biraz daha karmaşıktır - plot.xy'nin setDefaults ile kötü çalışmasını sağlayan bazı kırışıklıkları var - ama hala doğru yol olduğunu düşünüyorum) –

+1

.Rprofile dosyanızda (col = "red")? –

cevap

6

varsayılan par değerleri yeni grafik çerçeve açılmış her seferinde ayarlamak için "plot.new" kanca kullanabilirsiniz. ?

setHook("plot.new", function() par(col = "red")) 
+0

evet !!!! Bu gerçekten çok basitti. Cevabınız için çok teşekkürler, tam ihtiyacım olan şey bu. –

+0

Merhaba Googl .., eğer bu sayfayı ayrıştırıyorsanız, güzel grafiklere sahip olmanız için R'de yapmanız gereken kancalar şunlardır: "setHook (packageEvent (" grDevices "," onLoad "), \t (... grDevices :: X11.options (width = 14, height = 8, type = "Xlib", xpos = 600, ypos = 30, canvas = "grey87")) 've sonra da bunu ekleyebilirsiniz:' suppressPackageStartupMessages (gerektirir (Varsayılan)) suppressPackageStartupMessages (gerektirir (utils)) suppressPackageStartupMessages (gerektirir (grafikler)) setHook ("plot.new", fonksiyon() itibari (sütun = "kırmızı")) setDefaults ("plot.default", frame.plot = FALSE, type = 'l') ' –

+0

Bunu tozun altından almak. Bunu deniyorum ama bir sebepten dolayı kırmızı renk efsanemdeki etiketlere uygulanır. Herhangi bir fikir? –

3

parametreleri bir cihaz başına ayarlanmış edilir; böylece tek bir cihaz kapatıp tüm parametreler geri varsayılan değerlerine ayarlanır yeni bir tane oluşturun zaman. Bunu yapmak için ben parametreleri gibi bir şey daha sonra cihazı açar setleri kendi cihaz fonksiyonunu yaratacak: Açıkçası x11 veya başka bir şeyle dev.new yerini alabilecek

mydev.new <- function(...) { 
    dev.new(...) 
    par(col='red') 
} 

, ancak bu muhtemelen en taşınabilir. Artık mydev.new kullanarak yeni bir cihaz açabilirsiniz ve varsayılan renk kırmızıya ayarlanacaktır. Açık bir grafik aygıtı yok ve bir komplo komutu çalıştırdığınızda

Eğer

options(device=mydev.new) 

Sonra komutunu çalıştırın Daha bile, işlev yeni komplo cihaz ve böylece açmak için bir çalışma olacak Bu durumda da varsayılan kırmızı olacaktır. Çalışmak isteyebileceğiniz farklı durumlar için mydev.new işlevini (veya onu aramak istediğinizde) başka seçenekleri ayarlamak, argümanlar almak vb.