2016-11-07 14 views
0

私はggplot plotを生成し、.pngイメージとして保存しています。 Rstudioで生成されたプロットはy軸の値に従って伸びますが、.pngとして保存すると正方形の画像が得られます。ggplot to png - 自動的に画像を伸ばします

.pngフォームで自動的に最適な伸張画像を取得する方法は?

# Function to store ggplot plot object as .png image file 
savePlot <- function(myPlot, filename) { 
    png(filename) 
    print(myPlot) 
    dev.off() 
} 

# ggplot object 
normalized_bar_plot = ggplot(dat, aes(factor(temp), norm, fill = type)) + 
    geom_bar(stat="identity", position = "dodge") + ylab("Normalized count")+xlab(features[i])+ 
    scale_fill_brewer(palette = "Set1") 

filename = paste0("image_", features[i], ".png") 
savePlot(normalized_bar_plot, filename) 

答えて

4

ggplot数字を節約するために、私はggsaveを使用します。デフォルトでは、プロットデバイスのサイズが選択されます。したがって、画面上のプロットデバイスで縦横比を正しく設定すると、保存された画像ファイルに変換されます。さらに、画像の幅、高さ、およびdpiの設定は、width,heightおよびdpi入力引数を使用してサポートされています。例えば

ggplot(dat, aes(factor(temp), norm, fill = type)) + 
    geom_bar(stat="identity", position = "dodge") + ylab("Normalized count")+xlab(features[i])+ 
    scale_fill_brewer(palette = "Set1") 
# ggsave will save the last generated image, it will also pick up which file format 
# to use from the file extension (e.g. png). 
ggsave('~/saved_image.png', width = 16, height = 9, dpi = 100) 
+0

一般的には良いオプションです。しかし、私は 'ggsave'をサポートしていないサーバー上の古いバージョンのR(インストール権なし)に悩まされています。 このエラーメッセージが表示されました 'package 'ggsave'は使用できません(Rバージョン3.3.1用)' また、手動で寸法を指定したくありません。それは美学に基づいて寸法を選ぶべきです。 – Shivendra

+0

'ggsave'は別のパッケージではなく、' ggplot2'の関数です。 –

+0

プロットに基づいて自動的に正しいアスペクト比を選択することは、それほど些細なことではなく、特定のデータタイプにも非常に依存します。私の知る限り、これを行う機能はありません。しかし、自分で何かを考え出すことができます。 –

関連する問題