ggplot2 は、統計プログラミング言語R用のオープンソースのデータ可視化パッケージです。2005年にHadley Wickhamによって作成された ggplot2 は、 Leland WilkinsonのGrammar of Graphicsの実装です。Grammar of Graphics は、グラフをスケールやレイヤーなどの意味的コンポーネントに分解するデータ可視化の一般的なスキームです。ggplot2 は R の基本グラフィックスの代替として使用でき、一般的なスケールの Web 表示と印刷表示のための多くのデフォルト設定が含まれています。2005 年以降、ggplot2 の使用は増加し、最も人気のある R パッケージの 1 つになりました。[ 2 ] [ 3 ] [ 4 ]
2012年3月2日、ggplot2バージョン0.9.0がリリースされ、内部構成、スケールの構築、レイヤーに多数の変更が加えられました。[ 5 ]
2014年2月25日、ハドリー・ウィッカムは正式に「ggplot2はメンテナンスモードに移行します。これは、新しい機能の追加は行わないものの、重大なバグの修正は継続し、プルリクエストとして提出された新機能の検討も継続することを意味します。この重要な節目を記念して、ggplot2の次期バージョンは1.0.0となります」と発表した。[ 6 ]
2015年12月21日、ggplot2 2.0.0がリリースされました。発表では、「ggplot2に公式の拡張メカニズムが搭載されました。これにより、他の開発者が独自の統計情報、ジオメトリ、位置を簡単に作成し、他のパッケージで提供できるようになりました。」と述べられています。[ 7 ]
2018年7月5日、ggplot2 3.0.0がリリースされました(当初はggplot2 2.3.0として計画されていました)。これにより、ggplot2関数で準引用を可能にするtidy評価がサポートされるようになりました。[ 8 ] [ 9 ]
2025年9月11日、ggplot2 4.0.0がリリースされました。付随するブログ記事によると、このリリースには「S3からS7へのオブジェクト指向システムの書き直し、大規模な新機能から小規模な利便性の向上、バグ修正まで」が含まれているとのことです。[ 10 ]
基本の R グラフィックスとは対照的に、ggplot2 では、ユーザーがプロットのコンポーネントを高度な抽象度で追加、削除、または変更できます。[ 11 ]この抽象化にはコストがかかり、ggplot2 は lattice グラフィックスよりも遅くなります。[ 12 ]
基本Rでさまざまなデータサブセットの個別のプロットを作成するにはループと手動管理が必要ですが、ggplot2は選択可能な「ファセット」関数のコレクションによってそのプロセスを簡素化します。[ 13 ]
基本 R グラフィックスの潜在的な制限の 1 つは、プロット デバイスにデータを入力するために使用される「ペンと紙のモデル」です。[ 14 ]インタープリタからのグラフィック出力は、プロットの各要素ごとに個別に追加されるのではなく、プロット デバイスまたはウィンドウに直接追加されます。[ 15 ]この点では、lattice パッケージに似ていますが、Wickham は ggplot2 が Wilkinson からより形式的なグラフィックス モデルを継承していると主張しています。[ 16 ]そのため、高度なモジュール性を実現できます。同じ基となるデータをさまざまなスケールやレイヤーで変換できます。[ 17 ] [ 18 ]
qplot()プロットは、引数とデフォルト値が基本 R の関数に似ていることを意図した便利な関数を介して作成できますplot()。[ 19 ] [ 20 ]ggplot()より複雑なプロット機能は、ユーザーが文法のより明示的な要素に触れることができる関数を介して利用できます。 [ 21 ]
ggplot2 は開発されてから 10 年が経ち、データ視覚化コミュニティに影響を与え続けています。ダウンロード数は 1,000 万回を超え、月間ダウンロード数は最大 40 万回に達し、米国政府のデータサイエンティストからニューヨーク タイムズのジャーナリストまで、データ分析やプレゼンテーションに使用されています。[ 22 ]ウィッカムは、ggplot2 の成功は R 言語の人気が高まったことと、見た目に魅力的なグラフィックを比較的簡単に作成できることに起因すると考えています。ウィッカムは、ggplot2 のより真面目な用途に加えて、リアリティ TV 番組RuPaul's Drag Raceで勝つための要因を探るなど、より珍しい使用例も支持しています。[ 22 ]
グラフィックス文法の実装例を参照してください。
{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)