2016-11-25 46 views
0

我创建了一个条形图,其中包含多个因子,我通过特定的时间公式收集了多个数据点。现在我想要在条形图中随时间显示这些数据。因此我定义了以下命令并获得了下图。这里是数据。图表内排序日期

Zeitpunkt 20.05.2016 27.05.2016 03.06.2016 10.06.2016 17.06.2016 24.06.2016 01.07.2016 08.07.2016 15.07.2016 22.07.2016 28.07.2016 
Innoplattform 1,725806452 2,633333333 3,689655172 2,2 2,846153846 2,571428571 2,884615385 2,131578947 1,954545455 2,956521739 2 
WhatsApp 5,548387097 5,533333333 5,775862069 5,96 6,288461538 4,69047619 5,076923077 5,394736842 5,204545455 6,347826087 5,909090909 
Skype 0,483870968 1,133333333 1,310344828 1,1 1,346153846 0,261904762 0,480769231 0,526315789 0,545454545 1,369565217 0,659090909 
Adobe Connect 0 0,083333333 0 0 0 0 0 0,052631579 0,272727273 0,086956522 0 
Facebook 0 0 0,189655172 0,04 0 0 0 0 0 0 0 
Telefon 1,064516129 0,983333333 0,706896552 0,6 1,519230769 0,166666667 0,115384615 0,368421053 0,409090909 0,347826087 0,227272727 
E-Mail 0 1,166666667 1 0,7 1,711538462 0,452380952 0,942307692 0,236842105 1,022727273 2,413043478 2,090909091 

的数据也超过为.csv文件中提供的链接:

https://www.dropbox.com/s/o3jgwk76lx3v0i5/Verwendete%20Tools2.csv?dl=0

基于这些DATAS我所定义的DATAS为数据帧创建barplot。因此是以下命令。

Tools <- read.csv(file="Verwendete Tools2.csv", header = TRUE, sep = ";", dec=",") 

attach(Tools)  # Datensatz Tools laden  

df <- data.frame(X01.07.2016, X03.06.2016, X08.07.2016, X10.06.2016, X15.07.2016, X17.06.2016, X20.05.2016, X22.07.2016, X24.06.2016, X27.05.2016, X28.07.2016) 

barplot(as.matrix(df), main="Relative Häufigkeit der für die virtuelle Kommunikation genutzten Tools", ylab = "Relative Häufigkeit", xlab="Zeitpunkte der Umfragen", cex.lab = 1.5, cex.main = 1.4, beside=TRUE, col=c(1, 2, 3, 4, 5, 6, 7)) 

enter image description here

现在有什么错呢?通常这正是我想要得到的图表。但问题是,x轴上的日期不是按日期排序的。 R只是将日期标识为正常数字而不是日期..但是当我将这些数据点转换为日期时,我也将其他数据点转换为日期,我不想要的日期。

有人可以帮助我,我怎么可以在图中排序这些日期?或者有另一种解决方案,我可以如何创建此图表?

非常感谢!

+0

执行代码产量'错误:对象 'X01.07.2016' 不found'。请阅读[如何在R中提供最小重现性示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#answer-5963610)。然后相应地编辑并改进您的帖子。好的帖子通常提供最少的输入数据,所需的输出数据和代码尝试 - 在新的/干净的R会话中进行全部复制 - 粘贴 - 运行。 – lukeA

+0

我编辑了问题,并提供了保存在Dropbox上的数据集作为csv文件。我不明白你为什么会得到这个错误。我在R的指挥官那里试了一下,它完美地生成了条形图..但是我无法在x轴上以正确的顺序得到它。 –

+0

您正在'矩阵'上使用'barplot'。您的x轴由列名决定。列名是字符串(它们必须是字符串)。它们按照你的'data.frame()'调用中的列硬编码的顺序排列。如果您想以不同的顺序输入它们,请按不同的顺序输入它们。如果你想让它们以不同的方式显示,请使用'barplot'的'names.arg'参数指定你想要的字符串作为标签。 – Gregor

回答

0

你可以做

download.file("https://www.dropbox.com/s/o3jgwk76lx3v0i5/Verwendete%20Tools2.csv?dl=1", 
       tf <- tempfile(fileext = ".csv"), mode="wb") 
Tools <- read.csv(file=tf, header = TRUE, sep = ";", dec=",", check.names = F) 
m <- as.matrix(Tools[-1]) 
barplot(m, beside=TRUE, col=seq_len(nrow(m))) 

列已经排序在数据帧Tools

假设会不会是这样

m <- m[,sample(seq_along(colnames(m)))] # shuffle columns 
barplot(m, beside=TRUE, col=seq_len(nrow(m))) 

你仍然可以做

m <- m[, order(as.Date(colnames(m), "%d.%m.%Y"))] # order by date 
barplot(m, beside=TRUE, col=seq_len(nrow(m))) 
+0

非常感谢!有用! –