1. ホーム
  2. r

[解決済み] Rでデータフレームの全列をプロットする方法

2023-04-17 12:42:57

質問

データフレームにn個の列があり、各列に1つずつ、n個のプロットを取得したいのですが、可能でしょうか?

私は初心者でRに堪能ではありませんが、とにかく私は2つの解決策を見つけました。

最初のものは動作しますが、列名(そして私はそれらが必要です!)を表示しません。

data <- read.csv("sample.csv",header=T,sep=",")
for ( c in data ) plot( c, type="l" )

2番目のものは、カラム名を表示するので、よりうまく機能します。

data <- read.csv("sample.csv",header=T,sep=",")
for ( i in seq(1,length( data ),1) ) plot(data[,i],ylab=names(data[i]),type="l")

もっと良い(R言語の観点からの)解決策はないのでしょうか?

どのように解決するのですか?

この ggplot2 パッケージは少し学習が必要ですが、結果はとても美しく見え、美しい凡例が得られ、さらに他の多くの素晴らしい機能があり、すべて多くのコードを書く必要がありません。

require(ggplot2)
require(reshape2)
df <- data.frame(time = 1:10,
                 a = cumsum(rnorm(10)),
                 b = cumsum(rnorm(10)),
                 c = cumsum(rnorm(10)))
df <- melt(df ,  id.vars = 'time', variable.name = 'series')

# plot on same grid, each series colored differently -- 
# good if the series have same scale
ggplot(df, aes(time,value)) + geom_line(aes(colour = series))

# or plot on different plots
ggplot(df, aes(time,value)) + geom_line() + facet_grid(series ~ .)

<イグ