タグ付けされた質問 「ggplot2」

ggplot2は、「グラフィックの文法」の原則に基づいて、Hadley Wickhamによって書かれた、積極的に保守されているR用のオープンソースのチャート描画パッケージです。Rの基本的なプロットとラティスパッケージを部分的に置き換え、クリーンでパワフルで直交性のある楽しいAPIを提供します。

4
光沢のあるアプリで作成されたプロットを保存する
downloadButtonを使用して光沢のあるプロットを保存する方法を理解しようとしています。パッケージの例は、.csvを保存するためのdownloadButton / downloadHandlerを示しています。それに基づいて再現可能な例を作ります。 ために ui.R shinyUI(pageWithSidebar( headerPanel('Downloading Data'), sidebarPanel( selectInput("dataset", "Choose a dataset:", choices = c("rock", "pressure", "cars")), downloadButton('downloadData', 'Download Data'), downloadButton('downloadPlot', 'Download Plot') ), mainPanel( plotOutput('plot') ) )) ために server.R library(ggplot2) shinyServer(function(input, output) { datasetInput <- reactive({ switch(input$dataset, "rock" = rock, "pressure" = pressure, "cars" = cars) }) plotInput …
85 r  ggplot2  shiny 

4
facet_wrapラベルを完全に削除します
ファセットのラベルを完全に削除して、一種のスパークライン効果を作成したいと思います。オーディエンスに関しては、ラベルは無関係です。私が思いつくことができる最善の方法は次のとおりです。 library(MASS) library(ggplot2) qplot(week,y,data=bacteria,group=ID, geom=c('point','line'), xlab='', ylab='') + facet_wrap(~ID) + theme(strip.text.x = element_text(size=0)) では、(現在は空白の)strip.backgroundを完全に削除して、「スパークライン」用のスペースを増やすことはできますか? または、このような多数のバイナリ値の時系列に対してこの「スパークライン」効果を取得するためのより良い方法はありますか?
85 r  graphics  ggplot2 

3
ggplot2のファセットに一般的なラベルをどのように追加しますか?
私はしばしばファセットの数値を持っています。軸のタイトルと同様に、補足タイトルでこれらのファセット値を解釈するのに十分な情報を提供したいと思います。ラベラーオプションは多くの不要なテキストを繰り返し、長い可変タイトルには使用できません。 助言がありますか? デフォルト: test<-data.frame(x=1:20, y=21:40, facet.a=rep(c(1,2),10), facet.b=rep(c(1,2), each=20)) qplot(data=test, x=x, y=y, facets=facet.b~facet.a) 私が好きなもの: ggplotでできる最善のこと: qplot(data=test, x=x, y=y)+facet_grid(facet.b~facet.a, labeller=label_both) @Hendyで示されているように 、次のようになります。ggplot2プロットに2番目のy軸を追加します-完璧にします
84 r  label  facet  ggplot2 


4
スクリプトのggplotプロットはRstudioに表示されません
Rstudioに奇妙な問題があります。スクリプトがggplot2関数を呼び出してプロットを表示する場合、Sourceを使用してスクリプトを実行してもプロットは生成されません。私はスクリプト全体を選択した場合はCtrl+A、その後、現在の行または選択を実行します(Ctrl+Enter)、そしてプロットはありません表示を。同様に、プロットコマンドをコンソールに入力すると、正しい出力が生成されます。 例えば: library(ggplot2) p = ggplot(mtcars, aes(wt, mpg)) p + geom_point() ソースの場合ではなく、コンソールに貼り付けた場合にのみ出力を生成します。 これについては他にも質問がありますが、どちらも役に立ちません。 ggplot2 ggsave関数により、グラフィックデバイスはプロットを表示しません、問題は新しいバージョンで修正されたと誤って主張しますが、修正されていません。 RStudio-スクリプトで複数のプロットを印刷および保存するときに最初のプロットを保存しないggplotは重複として閉じられましたが、重複ではないだけでなく、dev.off()回避策も機能しません( " Error in dev.off() : cannot shut down device 1 (the null device)") スクリプトがソースされたときにRstudioにプロットを表示させるにはどうすればよいですか?Rstudio0.98.1062とR3.1.1を使用しています。
82 r  ggplot2  rstudio 

2
ggplot2で凡例アルファを設定する方法
ポイントの数が非常に多い方向に対する風速のグラフがあるので、color = monthに加えてalpha = I(1/20)を使用しています コードのサンプルは次のとおりです。 library(RMySQL) library(ggplot2) con <- dbConnect(...) wind <- dbGetQuery(con, "SELECT speed_w/speed_e AS ratio, dir_58 as dir, MONTHNAME(timestamp) AS month, ROUND((speed_w+speed_e)/2) AS speed FROM tablename;"); png("ratio-by-speed.png",height=400,width=1200) qplot(wind$dir,wind$ratio,ylim=c(0.5,1.5),xlim=c(0,360),color=wind$month,alpha=I(1/30),main="West/East against direction") dev.off() これはまともなグラフを生成しますが、私の問題は、凡例のアルファも1/30であり、判読できないことです。代わりに凡例を1アルファにする方法はありますか? 次に例を示します。
81 r  ggplot2 

5
ggplot2プロットの垂直グリッド線を抑制するにはどうすればよいですか?
水平(x)配置の指標として棒で十分な棒グラフを作成しているので、余分な垂直グリッド線を描画しないようにします。 opts()でマイナーグリッドラインとメジャーグリッドラインのスタイルを設定する方法は理解していますが、垂直グリッドラインだけを抑制する方法を一生理解することはできません。 library(ggplot2) data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4)) ggplot(data, aes(x, y)) + geom_bar(stat = 'identity') + opts( panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'), panel.grid.minor = theme_line(colour = NA), panel.background = theme_rect(colour = NA), axis.ticks = theme_segment(colour = NA) ) この時点で、すべてのグリッド線を抑制してから、geom_hline()でそれらを引き戻す必要があるように見えますが、これは一種の苦痛のようです(また、ティックを見つける方法が完全には明確ではありません) / geom_hline()にフィードする主要なグリッド線の位置。) どんな考えでもいただければ幸いです!
81 r  ggplot2 

4
ggplot2のfacet_wrap()とfacet_grid()の違いは何ですか?
私はggplot2両方の機能のドキュメントを読んでいます。それぞれの関数(facet_wrap()とfacet_grid())を使用する上で、どのような違いがあり、どのような状況が正しいのか疑問に思いました。 library(ggplot2) p <- qplot(displ, hwy, data = mpg) p + facet_wrap(~ cyl) p + facet_grid(~ cyl) この小さな例を出発点として提供します。違いは、ラップによってプロットがより自律的になり、グリッドによって1つのプロットがすべて一緒になることです。
80 r  ggplot2  facet-wrap 


2
ggplotが持つファセットの数をプログラムで確認するにはどうすればよいですか?
以下はコードとグラフです。 グラフには3つのファセットがあります。the_plot3つのファセットがある場所はどこにありますか?はい、mtcarsデータフレームまたはから取得できますがthe_plot$data、データ分析を再作成したくありません。むしろ、のグラフィック要素を調べたいthe_plotので、アプリケーションロジックを複数の場所に複製する必要はありません。 the_plot$facet私が認識したものは何も表示されず、他のプロット変数も表示されません。 tidyverse 1.3.0を使用しています。 library(tidyverse) data(mtcars) the_plot<-ggplot(mtcars, aes(mpg, disp, group=cyl)) + facet_wrap(~cyl) + geom_point() the_plot
13 r  ggplot2 

3
観察によってヒストグラム観察を構築するためにgganimateを使用しますか?より大きなデータセット(〜n = 5000)で機能する必要がある
報奨金は、期限が切れる明日。この質問への回答は、+ 200の評判バウンティの対象となります。 maxは信頼できるソースからの回答を探しています。 正規分布からポイントをサンプリングしgganimate、最後のフレームに完全なドットプロットが表示されるまで、パッケージを使用してドットプロットを1つずつ作成します。 大規模なデータセット〜5,000〜20,000ポイントで機能するソリューションが不可欠です。 ここに私がこれまでに持っているコードがあります: library(gganimate) library(tidyverse) # Generate 100 normal data points, along an index for each sample samples <- rnorm(100) index <- seq(1:length(samples)) # Put data into a data frame df <- tibble(value=samples, index=index) dfは次のようになります。 > head(df) # A tibble: 6 x 2 value index <dbl> <int> …

2
アルファの美学は単純な形ではなく矢の骨格を示しています-それを防ぐ方法は?
バーの端に矢印のあるバープロットを作成することを目指しています。私は定義されたと行きましgeom_segmentたarrow。1つの列を透明度にマップしたいのですが、アルファの美観が矢印オブジェクトでうまく機能しないようです。コードスニペットは次のとおりです。 tibble(y = c(10, 20, 30), n = c(300, 100, 200), transparency = c(10, 2, 4)) %>% ggplot() + geom_segment(aes(x = 0, xend = n, y = y, yend = y, alpha = transparency), colour = 'red', size = 10, arrow = arrow(length = unit(1.5, 'cm'), type = 'closed')) + …
11 r  ggplot2  geom-bar 

2
複数列ファセット関数の作成
関数inにfacet_multi_col()似た関数を作成しようとしています-これは、スペース引数(では使用できません)を含むファセットレイアウトを可能にしますが、複数の列に渡ります。以下の最後のプロット(で作成された)のように、各ファセットの高さは使用するカテゴリ変数に基づいて変化するため、ファセットを行全体に揃える必要はありません。facet_col()ggforcefacet_wrap()grid.arrange()y 私はggproto、拡張ガイドを読んだことで、自分の深みからうまく自分を見つけています。最善のアプローチは、レイアウトマトリックスを渡して、データの対応するサブセットの列をfacet_col 分割する場所を指示し、ggforceで構築してスペースパラメーターを含めることです-質問の最後を参照してください。 私の不十分なオプションの簡単な説明 ファセットなし library(tidyverse) library(gapminder) global_tile <- ggplot(data = gapminder, mapping = aes(x = year, y = fct_rev(country), fill = lifeExp)) + geom_tile() global_tile 大陸別にプロットを分解したい。こんなに長い姿は欲しくない。 facet_wrap() global_tile + facet_wrap(facets = "continent", scales = "free") facet_wrap()を使用coord_equal()すると、エラーがスローされ、各大陸でタイルのサイズが異なることを意味するスペース引数がありません ggforceのfacet_col() library(ggforce) global_tile + facet_col(facets = "continent", scales = "free", space = "free", …

1
ポイントが留まり、線がフェードするgananimateプロット
これは、アニメーション化したい静的プロットの再現可能な例です(MCMCサンプラーの動作を示したい)。 library(tidyverse) library(gganimate) set.seed(1234) plot_data <- tibble(x=cumsum(rnorm(100)), y=cumsum(rnorm(100)), time=1:length(x)) ggplot(data=plot_data, aes(x=y, y=x)) + geom_point() + geom_line() 私が見たいのは、ポイントが描画されて少しフェードアウトしたときに表示されるポイントです(つまり、アルファは1から0.3に変わります)。最近の履歴のみを表示するラインがあります(理想的には、最新の履歴は最も色あせが少なく、数歩以上前に完全に消えています)。 次は、ポイントに必要なものをほぼ達成します(つまり、最後のいくつかのポイントを接続するフェージングラインをこれに追加したいだけです。ポイントは、いくつかのフレームでゆっくりとフェージングがさらに良くなります)。 ggplot(data=plot_data, aes(x=y, y=x)) + geom_point() + transition_time(time) + shadow_mark(past = T, future=F, alpha=0.3) 私が苦労しているのは、ポイントとラインなど、2つのジオメトリに2つの異なる動作を追加する方法です。たとえば、以下では点が消え(私はそれらが欲しくない)、線は消えません(私はそれらが欲しがります)。 p <- ggplot(data=plot_data, aes(x=y, y=x)) + geom_point() + transition_time(time) + shadow_mark(past = T, future=F, alpha=0.3) p + geom_line() …

2
R ggplot2:facet_wrapで変数の値に応じてy軸に名前を付けるにはどうすればよいですか?
データのアイデアをお伝えします。そうすれば、私が達成しようとしていることを理解するのが容易になるはずです。 Repex: ID <- c(1, 1, 2, 3, 3, 3) cat <- c("Others", "Others", "Population", "Percentage", "Percentage", "Percentage") logT <- c(2.7, 2.9, 1.5, 4.3, 3.7, 3.3) m <- c(1.7, 1.9, 1.1, 4.8, 3.2, 3.5) aggr <- c("median", "median", "geometric mean", "mean", "mean", "mean") over.under <- c("overestimation", "overestimation", "underestimation", "underestimation", "underestimation", …
10 r  ggplot2 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.