2017-05-16 5 views
3

pdfへの単純な棒グラフを編むとき、私は棒の中にいくつかの望ましくない縞模様をつけます(付属のスクリーンショットの右側を見てください)。ggplot2棒グラフの不要な縞をpdfに編んだとき

--- 
title: "Don't Panic" 
author: "Ford Perfect" 
output: pdf_document 
--- 


```{r, include = F} 
library(ggplot2) 
``` 

# Introduction 

```{r, echo = F, fig.cap = "My plot"} 
ggplot(mpg) + geom_bar(aes(x = as.factor(cyl), y = hwy), stat="identity") 
``` 

私はR-Studioの(添付のスクリーンショットの左側を参照)に直接プロットを作成するときにこれらのストライプは表示されません。

私は前にデータを集約することにより、これらのストライプを削除する方法を見つけた:

ggplot(aggregate(hwy~cyl,mpg,"sum")) + 
    geom_bar(aes(x = as.factor(cyl), y = hwy), stat="identity") 

だから私はこれらのストライプは、データセット内の他のすべてのグループをスタックから来るべきであることを理解しています。私はデータセットを年によっても集計すると2つのストライプが得られるので(mpgデータセットでは2つのユニーク)、この理論は考えられます。

ggplot(aggregate(hwy~cyl*year,mpg,"sum")) + 
    geom_bar(aes(x = as.factor(cyl), y = hwy), stat="identity") 

しかし、私はSTATアイデンティティにを設定すると、自動的に私のための集約をggplot2やっていると思いましたか?実際にはR-Studioで直接動作します。だから、おそらく問題はknitrともっと関係がありますか?

私は過去にこの同じ問題はなかったと思います。だから、何か更新で変わったのでしょうか?実際に私の同僚(他の6台のMacとWindowsコンピュータ)はまったく同じ問題を抱えています。

Rバージョン3.4.0(2017年4月21日)
プラットフォーム:x86_64の-W64-MINGW32/x64(64ビット)
ggplot2:2.2.1
knitr:1.15.1

+0

あなたはggplotはあなたのためにそれを集約したい場合は、 '' statに= "カウント" でそれを試してみてください。 'stat =" identity "'は集計せずにファイル内の数字をプロットするので、たくさんの短いバーを積み上げるだけです。 –

+1

@Andrew、私はそれらが合計であり、カウントではないと思います。 'ggplot(mpg、aes(x = as.factor(cyl)、y = hwy))+ stat_summary(fun.y = 'sum'、geom = 'bar')'は動作するはずです。 – Axeman

+1

@Axeman - 申し訳ありません、はい、同意します。 –

答えて

2

コメントに記載されているように、グラフィックのファイルタイプは、グラフィックが出力pdfでレンダリングする方法に影響を与えます。提供チャンク使用

:デフォルトdev

```{r, echo = F, fig.cap = "My plot"} 
ggplot(mpg) + geom_bar(aes(x = as.factor(cyl), y = hwy), stat="identity") 
``` 

はPDFファイルで、問題のポストに示すように、PDFでの結果のグラフィックは次のとおりです。

enter image description here

あなたが明示されている場合以下のチャンクのように、devを使用すると、pngが生成され、結果として得られるpdfのイメージが必要になります。

```{r, echo = F, fig.cap = "My plot", dev = "png"} 
ggplot(mpg) + geom_bar(aes(x = as.factor(cyl), y = hwy), stat="identity") 
``` 

enter image description here

関連する問題