我想做一个雪花数据的柱状图。数据存储在.csv文件中,有一个date列和12个Location列,其中SWE值为整数。为了创建条形图,数据类型必须是向量或矩阵。因此,我的问题是如何将文件(data.frame)转换为矩阵并从中创建分组条形图。X轴应该是"date",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 任何帮助都将不胜感激!
发布于 2013-07-24 00:23:41
你让事情变得更难了。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如果您想创建一个boxplot,您只需输入barplot(VADeaths,grouped=T),结果就是

如果您想要切换x和y,您所要做的就是barplot(t(VADeaths),grouped=T),并且您需要:

。因此,您所要做的就是使用read.csv或其他工具读取数据,转置并绘制它!
发布于 2015-06-03 03:25:29
read.csv()返回data.frame,barplot()不接受此类。
在打印前使用as.matrix()将数据转换为可接受的类:x <-as.matrix(x)
https://stackoverflow.com/questions/17812579
复制相似问题