問題タブ [grob]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - ggplot 2.2.0 で壊れた gtable_add_grob コードの回避策を探しています
複数のファセット変数を含むプロットでは、ggplot2 は、「内部」変数のすべてのレベルにまたがる単一のスパニング ファセット ストリップを使用するのではなく、「外部」変数のファセット ラベルを繰り返します。パッケージgtable_add_grob
から使用して、繰り返される外側のファセット ラベルを単一のスパニング ファセット ストリップでカバーするために使用しているコードがあります。gtable
残念ながら、ファセット ストリップのグロブ構造が変更されたため、このコードは ggplot2 2.2.0 では機能しなくなりました。具体的には、ggplot2 の以前のバージョンでは、ファセット ラベルの各行に独自のグロブ セットがありました。ただし、バージョン 2.2.0 では、ファセット ラベルの各垂直スタックが単一のグロブのように見えます。これによりコードが破損し、修正方法がわかりません。
数か月前に回答した SO の質問から取った具体的な例を次に示します。
3 つのレベルのファセットを持つプロットから始めます。
次に、上部の 2 つのファセット ストリップをスパニング ストリップで覆い、ストリップ ラベルが繰り返されないようにします。
これは、このプロットが ggplot2 2.1.0 でどのように見えるかです:
ただし、ggplot2 2.2.0 で同じコードを試すと、ストリップ ラベルを変更せずに元のプロットが返されます。元のプロットのグロブ構造を見ると、p
なぜこれが起こっているのかがわかります。この質問の下部にあるグロブ テーブルに貼り付けました。スペースを節約するために、ファセット ストリップに関連する行のみを含めました。
列を見るとcells
、プロットの 2.1.0 バージョンでは、各行の最初の 2 つの数字が 3、4、または 5 のいずれかであり、プロット内の他のグロブに対するグロブの垂直位置を示していることに注意してください。上記のコードでは、t
とのl
引数gtable_add_grob
が 3 または 4 の値に設定されています。これは、スパン ストリップでカバーしたかったファセット ストリップ行であるためです。
2.2.0 バージョンのプロットの列を見てcells
ください。最初の 2 つの数値は常に 6 であることに注意してください。また、バージョン 2.1.0 では 24 の代わりにファセット ストリップが 8 つのグロブで構成されていることにも注意してください。バージョン 2.2.0 では、3 つのファセット ラベルの各スタックが、3 つの個別のグロブではなく、1 つのグロブになっているようです。したがって、t
andのb
引数gtable_add_grob
を 6 に変更しても、3 つのファセット ストリップすべてがカバーされます。次に例を示します。
gtable_add_grob
それで、その非常に長い導入の後、ここに私の質問があります: ggplot2 バージョン 2.1.0 で使用して作成したもののように見える ggplot2 バージョン 2.2.0 でスパニング ファセット ストリップを作成するにはどうすればよいですか? 簡単な調整があることを願っていますが、大手術が必要な場合は、それも問題ありません.
ggplot 2.1.0
ggplot2 2.2.0
r - ggplot2 のプロットに x 軸を指す矢印を追加します
私の目標は、x 軸を指すテキストを含む矢印を取得して、単語の平均頻度にラベルを付けることです。ggplot2のプロット領域の外に矢印またはテキストを取得する方法を一生理解できません。
これが私のコードです:
ここに私のデータがあります: