Maintainer: | Nicholas Lewin-Koh |
Contact: | nikko at hailmail.net |
Version: | 2015-01-07 |
Rは面白いグラフィックスを作成し、開発するための施設と豊富です。ベースRはcoplots、モザイクプロット、バイプロット、リストが進むなど、多くのプロットタイプのための機能が含まれています。このようなPostScript、PNG、JPEGおよびグラフィックスを出力するだけでなく、Rを実行しているすべてのプラットフォーム用のデバイスドライバのためのPDFファイルのようなデバイスがあります。latticeおよびグリッドはRの推奨パッケージで供給され、すべてのバイナリディストリビューションに含まれています。グリッドは、ベースのRグラフィックスよりもはるかに柔軟なグラフィック環境を定義していると同時に、latticeは、ウィリアム・クリーブランドのTrellisグラフのR実装です。
Rの基本グラフィックスはベッカー、チャンバー、およびウィルクスによって開発されたS3システムと同様にして実施される。静的なキャンバスとして扱われ、オブジェクトはRプロットコマンドを介してデバイスに描かれている静的なデバイスがある。デバイスは、par()コマンドを用いてユーザが操作することができるようなマージンやレイアウトなどのグローバルパラメータのセットを有する。Rグラフィックス・エンジンは、ユーザーの可視グラフィックスのリストを維持しないと、オブジェクトを簡単にプロット全体を再描画することなく編集することはできませんので、ダブルバッファリングのないシステムは、存在しない。この状況は、開発者がRデバイス用のダブルバッファリングに取り組んでいるR2.7.x、変更される可能性があります。そうであっても、基本のRグラフィックスは、多くの専門的な事例で、極めて微細なグラフィックスで、多くのプロットを生成することができます。
スケーリングがサイズ変更に適切に維持されている複雑なレイアウトを設計したい場合、すぐにRのベースのグラフィックシステムとのトラブルに実行することができ、ネストされたグラフが望まれている以上の双方向性が必要とされている。グリッドは、基礎となるプリミティブのグリッドを使用したlattice、ggplot2、vcd、hexbinような結果パッケージとして、これらの制限のいくつかを克服するためにポール・マレルによって設計された。グリッドで設計プロットを使用する場合はグリッドをビューポートとグラフィックオブジェクトのシステムに基づいていることを心に留めておく必要があります。オブジェクトを追加するには、例えば、polygon()よりもむしろgrid.polygon()のgridコマンドを使う。また、グリッドは、デバイスからのビューポートのスタックを維持し、希望するビューポートがスタックの最上位にあることを確認する必要があります。ビネット、グリッドに付属の説明資料が非常に多いです。
Rグラフィックスパッケージは上部に向け、よりユーザーから下に向けられたより多くの開発者の範囲は、以下のトピック、に大別整理することができます。カテゴリは相互に排他的ではないが、表示の都合上、以下のとおりです。
- プロット:特殊なプロットのための拡張機能は、いくつかのプロットの機能強化のためのgplotsとオーダープロットのためのgclus、カテゴリデータ用のvcd、ヘキサゴンビニングのためのhexbin、ポーラプロットのためのplotrixに記載されています。チェルノフ面のようないくつかの特殊なグラフは、Tukeyのバッグプロットの素敵な実装を持ってaplpackで実装されています。lattice、scatterplot3d、misc3dの3Dプロットのため、3Dプロットの異なる種類のプロットの選択を提供している。scatterplot3dは、misc3dがrglに基づいているRのベース・グラフィックス・システムに基づいています。可視化四元とoctonionsのパッケージonionはよく派生メッシュに基づいて3Dグラフィックスを表示するのに適している。
- グラフィックアプリケーション:このエリアには、これらのパッケージは、ツールを持っていることを除いてプロットセクションと大差ないという表示のためではないかもしれないが、効果的な表示を作成するのを助けることができる。また、より多くの難解な作図方法のパッケージも含まれています。特定の分野では、地図、または他の専用のユーザーが寄与する優れたタスクビューをクラスタ化するように開始するための優れた場所です。
- 効果の順序:gclusパッケージには、データ内のクラスタ構造や自然順序付けを強調するグラフの順序に焦点を当てています。直接的に非グラフィックスcba及びseriationには、より高い次元の基準から1次元の順序を作成するための機能を持っている。ディスプレイの配列を注文するため、biclustに便利です。
- 大規模なデータセット:大規模なデータセットは、中程度の小さなデータセットとは非常に異なる課題を提示することができます。さておきoverplottingから、1,000,000ポイントをレンダリングすることはあっても、現代のGPUに負担することができます。二変量データashは非常に迅速に変量平滑化されたヒストグラムを生成することができます。そしてhexbinに、することができます六角格子上にビン変量データ。利点は、六角形の不規則な線や方向が直線的成果物を作成しないということである。多変量データについては、hexbinはlatticeと組み合わせた散布図を作成するために使用することができる。代替的には、「データに関するデータ」のscaterplot行列を生成し、変数の興味深い組み合わせを探すためにscagnosticsを使用することである。
- 木やグラフ:apeとade4は、クラスタリング手法からデンドログラムをプロットするために使用することができる系統樹をプロットするための機能を有する。これらのパッケージは、まともなグラフィックスを作り出すが、それらは、ノードの配置のための高度なアルゴリズムを使用していないので、非常に大きな木のために有用ではないかもしれない。igraphはTilford-ラインゴールドアルゴリズムimplementeadを持ち、大きな木をプロットするのに便利です。diagramは、フロー図と簡単なグラフのための施設を持っています。より洗練されたグラフのRgraphvizとigraphは、大規模なネットワークを表現するのに特に有用でプロットし、レイアウトのための機能を有している。
- グラフィックシステム:latticeは、グリッド・グラフィックス・システムの上に構築され、S-PLUSのウィリアム・クリーブランドのトレリスシステムのR実装です。latticeは、コンディショニングに基づく洗練されたレイアウトでのプロットの多くの種類を構築することができます。ggplot2はリーランド・ウィルキンソンによる「グラフィックスの文法」で説明されているシステムのR実装です。lattice、ggplot2(また、グリッドの上に構築された)は、トレリスのようなグラフィックスを支援するが、はるかにすることができます。それは、グラフィックスのための意味論の考え方に基づいて構築されているため、データ、変換を再形成し、プロットの要素を組み立てる上ではるかに重点があります。
- デバイス:グリッドはRグラフィックスエンジンの上に構築されているのに対し、Rのコミュニティの多くは、Rグラフィックスエンジンはやや柔軟性に欠ける発見したとのどちらかが双方向性を強調したり、さまざまなグラフィックス形式でプロットする別々のデバイスドライバを書かれている。ベースRは、PostScript、PDF、JPEG、および他のフォーマットのためのデバイスを供給する。CRAN上のデバイスは、実際に多くのデバイス・タイプにレンダリングすることができ、デバイスベースのlibcairo、あるcairoDeviceが含まれています。カイロデバイスはGTK2と同様のGimpツールキットへのインターフェースですRGtk2、で動作するように設計されています。RSvgDeviceはSVGデバイスドライバですとベクトル描画プログラムととうまくインターフェースする。SVGデバイスは、インターネットエクスプローラがSVGをサポートしていないことに注意すべきウェブ表示開発者のためである。しかし、彼らの独自の標準をもつ。マイクロソフトを信頼しています。rglは、OpenGLに基づいてデバイスドライバを提供し、3Dおよびインタラクティブな開発に適しています。最後に、アウグスブルク・グループは、Javaベースのデバイス、JavaGDが含まれたパッケージのセットを提供しています。
- 色:パッケージcolorspaceは、色空間内の色を混合するための色空間とmixcolor()との間で変換するための関数のセットを提供します。colorspace、vcdで提供HCLの色に基づいて、カテゴリ変数(rainbow_hcl())と数値情報(sequential_hcl()、diverge_hcl())をコード化するのに適したカラーパレットを選択するための一連の関数が用意されています。HCLに基づく色はcolorspaceを提供し、vcdは、カテゴリ変数(rainbow_hcl())と数値情報(sequential_hcl()、diverge_hcl())をコード化するのに適したカラーパレットを選択するための一連の関数が用意されています。パレットの同様の種類のRColorBrewerに設けられている。dichromatは、色の不自由な視聴者のためのパレットに焦点を当てています。
- インタラクティブなグラフィックス:R.とうまくインターフェースインタラクティブなグラフィックスシステムを実装するには、いくつかの努力があります。対話型のシステムでは、ユーザーが対話的にマウス、またはズーム可動のブラシ、デバイス上でパンやクエリなどのデータを他のビューとのリンクを使って、画面にグラフィックスを照会することができます。Rから直接GGobiデータフレームまたは複数を表示できるようにrggobiは、R内をGGobiインタラクティブなグラフィックスシステムを埋め込む。パッケージは、長手方向のデータをサポートする機能、およびGGobiのエッジセットの機能を使用してグラフを有する。アウグスブルクグループの大学によって維持され、開発されたRoSuDAリポジトリは2つのパッケージiplotsとのiWidgetとJavaデバイス、JavaGDを含め、Java開発環境を持っています。彼らのインタラクティブなグラフィックス・ツールは、より多くのデータのある地域を中心に暗い陰影を作り出すアルファブレンディングのための関数が含まれています。これは、並列に多くの行ができ、迅速あいまいなパターンのプロットを調整するために、非常に便利です。playwithはcairoDeviceとRGtk2を使用してRグラフィックスのインタラクティブなバージョンを構築するための施設を持っています。最後に、rglパッケージはプロット、特に3D回転と表面のインタラクティブな操作のためのメカニズムを持っています。
- 開発:Rでの特殊なグラフィックスパッケージの開発のために、グリッドはおそらく、新たなプロットタイプのための最初に考慮すべきである。それは遅いかも知れませんデバイスは、対話式であるため、RGLは、3Dグラフィックスのための優れたツールを持っています。代替案は、Javaは、独自の欠点がありますを通じて、RoSuDAパッケージでJavaおよびJavaの使用が有効です。パッケージを使用して、グリッドにプロットするコードを移植するためのgridBaseその逆も基本グリッドグラフィックスとグラフィックスを埋め込む素敵な中間ステップを提示します。
ピンバック:R言語 CRAN Task Views | トライフィールズ