1

Snow Data の barplot を作成したいと思います。データは .csv ファイルに保存され、日付列と整数の SWE 値を持つ 12 の場所列があります。棒グラフを作成するには、データ型がベクトルまたは行列である必要があります。だから私の質問は、ファイル (data.frame) を行列に変換し、そこからグループ化された棒グラフを作成する方法です。X 軸は「日付」、Y 軸は「SWE [mm]」である必要があります。私の .csv ファイルは次のようになります。

Date     SB1 SB2 SB3 ...
1.1.2013 95  90  91  ...
1.2.2013 87  80  82  ...
1.3.2013 45  30  15  ...
1.4.2013 23  18  3   ...

これまで私が試した:

setwd("path")
swe = read.csv("name.csv", header=TRUE, sep=";")
swe$new = paste(swe$Date," ")
swe$new = strptime(swe$new, "%d.%m.%Y")
swe2 <- data.matrix(swe)
dimnames(swe2) <- NA
jpeg("swe_sb1.jpg")
barplot(swe2$Date, swe2$SWE_SB1, ..., beside = TRUE)
dev.off()

エラーメッセージが表示されます:

> setwd("path")
> swe = read.csv("name.csv", header=TRUE, sep=";")
> swe$new = paste(swe$Date," ")
> swe$new = strptime(swe$new, "%d.%m.%Y")
> swe2 <- data.matrix(swe)
> dimnames(swe2) <- NA
Fehler in dimnames(swe2) <- NA : 'dimnames' muss eine Liste sein
> str(swe2)
num [1:4, 1:38] 2 1 3 4 119 117 87 118 54 35 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:38] "Date" "SWE_SB1" "SH_SB1" "SD_SB1" ...
> jpeg("swe_sb1.jpg")
> barplot(swe2$Date, swe2$SWE_SB1)
Fehler in swe2$Date : $ operator is invalid for atomic vectors
> dev.off()
jpeg:75:swe_all.jpg 
              2 

どんな助けでも大歓迎です!

4

2 に答える 2

2

あなたはこの道をそれよりも難しくしています。R にはすべての関数の優れた例があるため、?barplot開始するのに適した場所である可能性があります。

とにかく、あなたが持っているのは、グループ化されたボックスプロットを作成したいマトリックスです。例のようなマトリックスがある場合は、次のように入力して表示されますVADeaths

Rural       Male Rural   Female     Urban Male   Urban Female
50-54       11.7         8.7        15.4         8.4
55-59       18.1         11.7       24.3         13.6
60-64       26.9         20.3       37.0         19.3
65-69       41.0         30.9       54.6         35.1
70-74       66.0         54.3       71.1         50.0

箱ひげ図を作成したい場合は、入力するだけで次のようにbarplot(VADeaths,grouped=T)なります 単純な棒グラフ

x と y を入れ替えたい場合はbarplot(t(VADeaths),grouped=T)、 だけで済みます転置棒グラフ。したがって、あなたがしなければならないのは、データを読み込みread.csv、転置してプロットすることだけです!

于 2013-07-23T16:23:41.047 に答える
0

read.csv()はdata.frameを返しますが、barplot()このクラスは受け入れません。

プロットする前に使用as.matrix()して、データを受け入れられたクラスに変換します。 x <-as.matrix(x)

于 2015-06-02T19:25:29.307 に答える