Rの基本的な描画システムを使用して描画する方法

Rの基本的な描画システムは、Ross Ihakaによって書かれています。これは非常に強力で、主にグラフィックパッケージとgrDevicesパッケージで構成され、Rの起動時に自動的にロードされます。基本的な描画システムには、高水準の描画機能と低水準の描画機能の2種類の機能があります。いわゆる高レベル描画関数は、plot()、hist()、boxplot()、pairs()などを含むグラフィックを直接生成するために使用される関数です。低レベル描画関数は、高レベル描画関数の描画形状に基づいて、新しいグラフィックスまたは要素を追加するために使用される関数です。これには、points()、lines()、text()、title()、legend()およびaxis()など

4.1.1関数plot()

関数plot()は一般的な関数であり、さまざまなタイプのデータに対して、さまざまなグラフを描くことができます。たとえば、数値データの場合は散布図を描画でき、カテゴリカルデータの場合は箱ひげ図を描画できます。一部の統計モデルの場合は、生存分析などの対応するグラフィックを描画でき、生存を描画できます曲線。したがって、関数plot()は非常に頻繁に使用されます。さまざまな共通パラメーターの使用法を表示するには、ヘルプファイルを開くことをお勧めします。

2種類の薬物(drugAとdrugB)と5用量(dose)の患者の応答を示すサンプルデータを作成してみましょう。

>用量<-c(20、30、40、45、60)>薬物A <-c(16、20、27、40、60)>薬物B <-c(15、18、25、31、40)

上記のデータを使用して、薬物Aの用量と反応の関係をプロットします。

> plot(dose、DrugA)> plot(dose、DrugA、type = "b")

上記のコマンドは2つのグラフを作成します。関数plot()のパラメータータイプのデフォルトは "p"(点を表す)なので、結果の図4-1(a)は散布図です。2番目のコマンドラインでは、パラメーターの種類が "b"(点と線を表す)に変更されているため、結果の図4-1(b)は点線のグラフになります。

  (A)(b)


図4-1薬物Aの投与量と反応の関係の散布図(a)と点線図(b)

関数plot()は、新しいグラフを作成するために使用されます。また、line()、legend()などの低レベルのグラフ関数を使用して、既存のグラフに新しいグラフィック要素を追加することもできます。例えば:

> plot(dose、DrugA、type = "b"、+ xlab = "Dosage"、ylab = "Response"、+ lty = 1、pch = 15)> lines(dose、drugB、type = "b"、lty = 2、pch = 17)> legend( "topleft"、title = "Drug Type"、+ legend = c( "A"、 "B")、+ lty = c(1、2)、+ pch = c(15 、17))

図4-2に示すように、異なる用量での2つの薬物の応答を比較するために、1つのグラフに2つの点線グラフを表示し、異なるタイプの線(lty)と異なる特性(pch)を持つ点を使用して、区別する。読みやすさを向上させるために、凡例も追加されました。関数legend()のポイントとラインの属性は、前の関数plot()とlines()で設定された属性と一致している必要があることに注意してください。

図4-2薬物Aと薬物Bの用量および反応関係の比較

4.1.2ヒストグラムと密度曲線

ヒストグラムは、連続変数の分布を表示するために最も一般的に使用されるツールであり、本質的に密度関数の推定値です。ヒストグラムと密度グラフは一般的に分布を調査するために使用され、結果を報告するために使用されることはほとんどありません。関数hist()を使用して、ヒストグラムを描画できます。

拒食症のデータセットはMASSパッケージにあり、拒食症の若い女性の体重変化に関する研究から得られました。データセットには、72の観測オブジェクトと3つの変数が含まれています。変数Treat(処理モード)は、3つのレベルの係数です。変数PrewtとPostwtはどちらも数値であり、処理前後の重量を表します(単位:lb)。以下の変数Prewtのヒストグラムを描画します。コードは次のとおりです。

> data(anorexia、package = "MASS")> str(anorexia) 'data.frame':72 obs。3変数の:$扱い:3レベルの係数 "CBT"、 "Cont"、 "FT":2 2 2 2 2 2 2 2 2 2 2 ... $ Prewt:num 80.7 89.4 91.8 74 78.1 88.3 87.3 75.1 80.6 78.4 ... $ Postwt:num 80.2 80.1 86.4 86.3 76.1 78.1 75.1 86.7 73.5 84.6 ...> attach(anorexia)> hist(Prewt)

図4-3(a)は変数Prewtの度数分布を示しています。関数hist()にはパラメーターが設定されていないため、図ではデフォルトのグループ距離、軸ラベル、およびタイトルが使用されています。ヒストグラムの形状はグループ距離の影響を受けることに注意してください。適切なグラフを取得するために、パラメーターブレークの異なる値を設定する必要がある場合があります。関数hist()の出力結果には、計算された戻り値が含まれています。これは、間隔の端点、頻度(または密度)、および中点の除算など、さらにマッピングまたは分析に使用できます。

密度曲線は、データ分布のより滑らかな説明を提供します。密度曲線を描画する方法は次のとおりです。

> plot(density(Prewt))

図4-3(b)から、変数Prewtの分布は単峰性であり、基本的に対称であることがわかります。密度曲線と軸方向のウィスカープロットをヒストグラムに追加することもできます。このとき、関数hist()でパラメーターfreqをFALSEに設定する必要があります。つまり、縦座標を周波数に変更します。そうしないと、密度曲線がほとんど見えなくなります。パラメータlasは1に設定され、垂直軸のスケールラベルを水平に表示します。

> hist(Prewt、freq = FALSE、col = "red"、+ xlab = "Weight(lbs)"、+ main = "Histogram before weight distribution before processing"、+ las = 1)> lines(density(Prewt)、 col = "blue"、lwd = 2)> rug(Prewt)> detach(anorexia)

図4-3(c)は、バーを赤で塗りつぶし、より有益な軸ラベルとタイトルを追加し、パラメーターlasを1に設定することにより、垂直軸スケールラベルを水平表示に変更します。次に、関数lines()を使用して、ヒストグラムにデフォルトの線幅の2倍の青の密度曲線を重ね合わせます。最後に、関数rug()を使用して、横軸に軸ひげ図を追加し、データ分布の密な傾向を示します。

  (A)(b)(c)


図4-3ヒストグラムの例

4.1.3棒グラフ

棒グラフは医学論文でよく使用され、縦または横の長方形でカテゴリ変数の頻度分布を表示します。関数barplot()を使用して、棒グラフを描画できます。次の例では、vcdパッケージの関節炎データセットを使用して、関数barplot()の使用法を紹介します。このデータセットは、関節リウマチを治療する新しい方法に関するグループ管理の二重盲検臨床試験研究に由来します。応答変数の向上は、薬物療法を受けた各患者(治療、41例)またはプラセボ(プラセボ、43例)の治療効果を3つのレベル(なし、一部、マーク)に分けて記録しました。

> library(vcd)> data(Arthritis)> attach(Arthritis)> counts <-table(Improved)> countsImproved None some Marked 42 14 28

関数table()は、カテゴリー変数の頻度統計表を生成するために使用されます。上記の出力から、28人の患者は大幅に改善し、14人の患者は部分的に改善し、42人の患者は改善していないことがわかります。図4-4(a)に示すように、棒グラフを使用してこの頻度分布を表示できます。

> barplot(counts、xlab = "改善"、ylab = "頻度"、las = 1)

関数barplot()を使用して、データを2次元分割表に表示することもできます。図4-4(b)はグループ化された棒グラフを描画し、色と凡例を追加します。コードは次のとおりです。

>カウント<-table(Improved、Treatment)> barplot(counts、+ col = c( "red"、 "yellow"、 "green")、+ xlab = "Improvement"、ylab = "Freqency"、+ sideside = TRUE 、las = 1)> legend( "top"、legend = rownames(counts)、+ fill = c( "red"、 "yellow"、 "green"))

  (A)(b)


図4-4棒グラフの例

棒グラフを使用すると、さまざまなカテゴリの下で平均、中央値、標準偏差、信頼区間などを表示できます。この機能は、基本パッケージの機能で実現できますが、多くの手順が必要です。epiDisplayパッケージの関数aggregate.plot()は、このプロセスを簡略化できます。次のコードは、データセット食欲不振を例として使用して、さまざまな処理方法で処理した後の平均体重の棒グラフを描画します。結果を図4-5に示します。

> library(epiDisplay)> aggregate.plot(anorexia $ Postwt、by = list(anorexia $ Treat)、+ error = "sd"、legend = FALSE、+ bar.col = c( "red"、 "yellow"、 "緑 ")、+ ylim = c(0,100)、las = 1、+ main =" ")

図4-5平均と標準偏差の棒グラフの例

上のエラーバーは標準偏差を表しています。関数aggregate.plot()のパラメーターエラー設定を変更することで、標準誤差または信頼区間を表示できます。

4.1.4円グラフ

円グラフは、分類されたデータの比率を示すために使用できます。たとえば、以下のコードで描かれた円グラフ(図4-6)は、病院の救急部門に1週間で入院した疾患の種類の分布を示しています。

>パーセント<-c(5.8、27.0、0.5、20.8、12.8、33.1)>疾患<-c( "shanggan"、 "stroke"、 "traumatic傷害"、 "fainting"、 "food poisoning"、 "other") > lbs <-paste0(disease、percent、 "%")> pie(percent、labels = lbs、col = rainbow(6))

図4-6 1週間で入院した救急患者の診断分布

ほとんどの統計学者は円グラフの使用を推奨していませんが、人々は長さの判断が面積よりも正確であるため、円グラフの代わりに棒グラフまたは点グラフの使用を推奨しています。したがって、基本的なパッケージ関数pie()には、円グラフを描画するためのオプションが限られています。ただし、plotrixパッケージなど、一部の寄付パッケージはRの機能を拡張して円グラフを描画します。このパッケージで提供される関数pie3D()は3次元の円グラフを描画でき、他の関数fan.plot()は関数が円グラフと同様の円グラフを描画できます。興味のある読者は、このパッケージをインストールしてヘルプドキュメントを表示できます。

4.1.5ボックスプロットとバイオリンプロット

ボックスウィスカープロットとも呼ばれるボックスプロットは、データのおおよその分布特性を示すため、および外れ値と外れ値を探索するためによく使用されます。関数boxplot()を使用してボックスプロットを描画できます。次のボックスプロットは、データセットの拒食症における体重の前後の変化の分布を示しています。

> anorexia $ wt.change <-anorexia $ Postwt-anorexia $ Prewt> boxplot(anorexia $ wt.change、ylab = "Weight change(lbs)"、las = 1)

読者が箱ひげ図の各部分の意味をよりよく理解できるように、著者は図4-7に手動注釈を追加しました。データが対称的に分布している場合、中央値は上位四分位と下位四分位の中央にある必要があります。つまり、ボックスプロットのボックスは中央線に対して対称です。上部ヒンジと下部ヒンジの外側の値は通常、外れ値と見なされます。

図4-7ラベルが追加された箱ひげ図の例

並列ボックスプロットを使用して、カテゴリ変数の各カテゴリのインジケーターの分布を比較できます。たとえば、異なる処理での体重変化を比較するには、次のコマンドを使用できます。

> boxplot(wt.change〜Treat、data = anorexia、+ ylab = "Weight change(lbs)"、las = 1)

関数boxplot()の最初のパラメーターは数式です。Rの式は通常、変数を接続するために記号「〜」を使用します。「〜」の左側は従属変数と見なすことができ、「〜」の右側は独立変数と見なすことができます。図4-8(a)から、「FT」(家族治療)グループの体重変化量は、他の2つのグループのそれよりも高かったことがわかります。ただし、違いの有意性を判断するには、さらに有意性検定が必要です。これについては、第5章で詳しく説明します。

バイオリンプロットは、ボックスプロットと密度プロットの組み合わせとして見ることができます。vioplotパッケージの関数vioplot()を使用して、バイオリン図を描くことができます。使用する前に、このパッケージをインストールしてロードしてください。たとえば、図4-8(a)は、図4-8(b)に示すように、バイオリン図に置き換えることができます。

>ライブラリー(vioplot)> vioplot(wt.change〜Treat、data = anorexia、+ ylab = "Weight change(lbs)"、+ col = "gold"、las = 1)

   (A)(b)


図4-8異なる処理による体重変化のボックスプロット(a)とバイオリンプロット(b)

4.1.6クリーブランドドットチャート

クリーブランドドットプロットは、本質的に散布図です。データのサイズをポイントの位置で表示します。これは、単純な水平スケールで多数のラベル付き値をプロットする方法です。その機能は、棒グラフの機能と似ています。しかし、データのソートとそれらの間のギャップを強調してください。関数dotchart()を使用して、クリーブランドのドットチャートを描画できます。データセットパッケージのデータセットVADeathsは、1940年の米国バージニア州の都市部と農村部におけるさまざまな年齢層の人々の死亡率(‰)です。クリーブランドドットチャート(図4-9)はデータをよりよく表示できます。コードは次のとおりです。

> dotchart(VADeaths)> dotchart(t(VADeaths)、pch = 19)

図4-9からわかるように、死亡率は年齢とともに増加します。同じ年齢層では、農村部の死亡率は都市部よりも高くなります。同じ年齢層と同じ地域では、男性の死亡率が高くなります女性のための。

図4-9クリーブランドのドットプロットの例

4.1.7グラフィックのエクスポート

グラフィックを保存する場合は、グラフィカルユーザーインターフェイスとコードを2つの方法で使用できます。RStudioの右下の[プロット]で、[エクスポート]をクリックし、[画像として保存]または[PDFとして保存]を選択して、指定したフォルダーにグラフィックを保存します。また、「クリップボードにコピー」を選択して、グラフィックを直接WordまたはPowerPointドキュメントにコピーすることもできます。この方法で保存されたグラフィックはRStudioグラフィックウィンドウのサイズに関連していることに注意してください。つまり、異なるサイズのウィンドウで取得したグラフィックは異なります。レポートまたはペーパーで使用するためにグラフィックスを保存する場合、作成者は、コードメソッドを使用して、ターゲットグラフィックスデバイスをオンにするステートメントとターゲットグラフィックスデバイスをオフにするステートメントの間に描画ステートメントを配置することをお勧めします。たとえば、次のコードは現在の作業ディレクトリにグラフを保存し、「mygraph.pdf」という名前を付けます。

> pdf( "mygraph.pdf")> boxplot(wt.change〜Treat、+ data = anorexia、+ ylab = "Weight change(lbs)"、+ las = 1)> boxplot(wt.change〜Treat、data =拒食症、ylab = "体重変化(lbs)")> dev.off()

関数pdf()に加えて、関数png()、jpeg()、tiff()およびpostscript()を使用して、グラフィックスを他の形式で保存することもできます。bmp、png、およびjpeg形式のグラフィックスファイルはすべて非ベクター形式であり、解像度の影響を受けやすくなりますが、占有するスペースが小さく、WordおよびPowerPointドキュメントでの使用に適しています。ps形式のグラフィックスファイルは、ベクター形式ではありません。解像度は関係なく、組版や印刷に適しています。tiff(またはtif)形式のグラフィックファイルは多くのカラーシステムをサポートでき、オペレーティングシステムに依存しませんが、さまざまな出版物で最も広く使用されています。例えば:

> tiff(filename = "mygraph.tiff"、+ width = 15、height = 12、units = "cm"、res = 300)> boxplot(wt.change〜Treat、data = anorexia、ylab = "Weight change(lbs ) ")> dev.off()

上記のコマンドは、「mygraph.tiff」という名前のグラフィックファイルを生成します。パラメーターwidthとheightはグラフの幅と高さをそれぞれ設定するために使用され、パラメーターunitsは幅と高さの単位を設定するために使用され、パラメーターresは解像度を設定するために使用されます。ここでほとんどの出版物で必要な最小値300に設定します。

ペーパーカットオプション「実際の医療データのR言語分析」から

  • Huazhong科学技術大学同済医科大学のYu Songlin教授が推奨する医療統計入門
  • 実際の戦闘とアプリケーションを強調し、問題の性質と全体的な構造を強調します
  • データ分析の理解を深めるために、多数のRプログラムの例とグラフィックが含まれています

この本は、医療データを例として使用して、データ分析にRを使用する方法を説明し、多数の選択された例と組み合わせて、一般的な分析方法を簡単に紹介し、医療データ分析の実際的な問題を読者が解決するのに役立ちます。

本は14の章に分かれており、第1章から第3章はR言語の基本的な使用法を紹介し、第4章はデータの視覚化を紹介し、第5章は基本的な統計分析方法を紹介します。医学研究で最も一般的に使用される3つの回帰モデル;第9章では生存分析の基本的な方法を紹介します;第10章から第12章では、いくつかの一般的に使用される多変量統計分析方法を紹介します;第13章では臨床診断テストを紹介します統計的評価指標と計算方法;第14章では、医学科学研究の実践で一般的に使用されるメタ分析方法を紹介します。

この本は、臨床医学、公衆衛生およびその他の医学関連の専攻の学部生および大学院生に適しています。また、データ分析を研究する他の専攻の学生および研究者向けの参考書としても使用できます。この本を読むと、読者はRと関連パッケージを使用して実用的な問題をすばやく解決する方法を習得できるだけでなく、データ分析についても深く理解できます。

 

おすすめ

転載: blog.csdn.net/epubit17/article/details/108403226
おすすめ