我想制作一个Snow Data的条形图。数据存储在.csv-File中,并具有日期列和12个位置列,SWE值为整数。 为了创建条形图,数据类型必须是向量或矩阵。所以我的问题是如何将文件(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
任何帮助将不胜感激!
答案 0 :(得分: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
或其他内容读取数据,转置并绘制它!
答案 1 :(得分:0)
read.csv()
返回 data.frame ,barplot()
不接受此类。
在绘制在接受的类中转换数据之前使用as.matrix()
:
x <-as.matrix(x)