在图表中对日期进行排序

时间:2016-11-25 16:47:10

标签: r sorting date bar-chart

我创建了一个条形图,其中包含我在特定时间内收集的多个数据点因子。现在,我希望随着时间的推移在条形图中说明这些数据。因此,我定义了以下命令并获得了以下图表。这是数据。

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

基于这些数据,我将数据定义为数据帧以创建条形图。因此是以下命令。

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只是将日期标识为正常数字而不是日期..但是当我将这些数据点转换为日期时,我还将其他数据点转换为日期,这是我不想要的。

有人可以帮助我,我如何在图表中对这些日期进行排序?或者是否有其他解决方案如何创建此图表?

非常感谢!

1 个答案:

答案 0 :(得分: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)))