R - dosyayı dosyaya kaydet | tutuappapks.com
Aşağıdaki sorunla ilgili yardımınıza minnettarım. Tek bir çizimi bir dosyaya kaydetmenin birkaç yolunu biliyorum. Sorum şu: Nasıl doğru bir şekilde kaydederim multiplot bir dosyaya
Başlamak için deneyimli bir R kullanıcısı değilim. Haritalarımı oluşturmak için ggplot2 kullanıyorum ve muhtemelen bahsetmem gereken başka bir şey de RStudio GUI'yi kullanıyorum. Bir örnek R Cookbook dan, bir pencerede birden çok parsel oluşturabiliyorum.
Bu sözde multiplotu bir dosyaya (tercihen jpeg olarak) kaydetmek istiyorum, ancak bir şekilde bunu yapamıyorum.
Aşağıdaki gibi çoklulot oluşturuyorum:
Bu istenen sonucu verir. Bir dosyaya kaydetmeye çalıştığımda sorun ortaya çıkıyor. Bunu RStudio'da (Export -> Plotu resim olarak kaydet) kullanarak el ile yapabilirim, ancak her şeyi bir komut dosyasında çalıştırmak isterim. Ben sadece subplot1d'yi (last_plot ()) ve tam bir tamsayıyı kaydetmeyi başaramıyorum.
Şimdiye kadar denediğim şey:
Bu sadece kaydedilen alt-çizim 1d ile sonuçlanır.
Jpeg (), print () ve dev.off () kullanma
Bu tamamen beyaz bir görüntü ile sonuçlanır (sadece arka plandaki gibi). Yazdır (Myplot), NULL değerini döndürür.
Burada yanlış yaptığımdan emin değilim. Anlamaktansa, benim bir çözüm bulmaya çalışırken sıkışıp kalmamın sebebi R. Herkes yanlış yaptığımı açıklayabilir ve belki problemlerimi çözmenin bir yolunu önerebilir mi?
Ayrıca kullanabilirsiniz gridExtra :: grid.arrange (plot1a, plot1b, plot1c, plot1d, ncol = 2) - dickoa
GridExtra paketi, grid.arrange içermez, aynı işlevselliği sağlayan bir düzenleme olan removeGrob içerir. Ben de grid.arrange adında bir işlevi hatırlıyorum gibi görünüyor, belki de yazar paket içindeki işlev başlıklarını değiştirdi. - Paul Hiemstra
grid.arrange gridExtra içinde olmalıdır. Şüphesiz, yararlarından biri arrangeGrob vs multiplot ile uyumludur ggsaveve daha sonra kullanmak için kompozit kabı saklayabilirsiniz. - baptiste
Ben sadece jpeg'in muhtemelen en iyi seçenek olmadığını belirtmek isterim. Çizim raster bir görüntü olarak (örneğin, pdf veya eps değil) bitmelidir, bunun yerine png kullanın. Kayıpsız sıkıştırmayı kullanır, yani metin veya çizgiler gibi keskin kontrast bölgeleri etrafında hiçbir eser olmayacaktır. Sıkıştırma ayrıca, araziler gibi tek bir renkteki geniş alanlara sahip görüntüler için de harika çalışır. - quazgar
Çünkü Myplot multiplot işlevinizden döndürülen değerdir ve hiçbir şey döndürmez (işi grafikleri yazdırmaktır). Jpeg cihazı açıkken multiplot çağırmanız gerekiyor:
Gerçekten bu kadar basit! Yaklaşımımın neden işe yaramadığını açıkladığınız için çok teşekkürler. - M_Vermeulen
Kullanmak örnek kod (R kitabı), benim için çalışıyor
Haklısınız, fakat kodunuz @M_Vermeulen'den biraz farklıdır, ilk önce 4 parselini bekler. multiplot ızgara nesnesini döndürmek için Bu olabilir grid.arrange bu davranışı gösteriyor mu? - Paul Hiemstra
@PaulHiemstra: Burada farklı bir yaklaşım olduğunu düşünmüyorum, örnek sayfasına bakınız. Asıl sorun @Spacedman tarafından çok iyi açıklandı. Ve evet grid.arrange aynı davranışı göster - dickoa
Kodunuz zaten @Spacedman'ın düzeltmesini içeriyor. png. - Paul Hiemstra
Her plotun boyutunu artırmak için neyse? - EntryLevelR
Ve bütünlük uğruna, ggsave sadece son arsa olan son baskılı ggplot nesnesini kaydettiğinden çalışmaz. Bu durum, çoklu grafik, ggplot nesnelerini toplam grafik aygıtının farklı alt kümelerine çizerek arsa oluşturması gerçeğinden kaynaklanır. Bir alternatif, ggplot nesnelerini bir büyük ggplot nesnesine birleştirerek ve ardından nesneyi yazdırarak grafiği oluşturmaktır. Bu ile uyumlu olurdu ggsave. Bu yaklaşım tarafından uygulanır arrangeGrob içinde gridExtra paketi.
teknik olarak, arrangeGrob "bir büyük ggplot nesnesi" oluşturmaz, "düzenleme" sınıfının bir gTree döndürür, ve çocuk listesinde ggplots varsa, o zaman sınıf da "ggplot" dan fool ggsave için miras alır. - baptiste
Daha detaylı bilgi için teşekkürler. - Paul Hiemstra
Entity Framework model tanımlarında sınıf özellikleri için 'sanal' neden kullanılır? Excel'deki tüm hücrelere ortak önek ekleme JQuery'de zincirleme seçicileri Android / SQLite: Tanımlayıcıyı korumak için Insert-Update tablo sütunları Heroku'da HTTPS'yi nasıl devre dışı bırakırım python'da wordnet lemmatization ve pos etiketleme Node.js'in ClientRequest ile bir proxy (fiddler gibi) kullanılabilir