R 叠条

R 叠条,r,csv,graph,R,Csv,Graph,我有一个从PostgreSQL导出的csv表格,我想在R中创建一个堆叠条形图。这是我在R中的第一个项目 以下是我的数据和我想做的事情: 它会影响该地区某个供应商的支线巴士服务质量。对于列车的每个用户,我们根据车站公共汽车和列车之间的同步分配服务质量,并计算具有理想或非常好的服务、正确的服务、不足的服务或根本没有服务的用户百分比(与中的问题相关) 所以,它就像使用我的第一列作为我的x轴标签,使用我的标题作为我的类别。对于每一行,数据已经标准化为100% 在Excel中,只需单击几下,我不介意键入

我有一个从PostgreSQL导出的csv表格,我想在R中创建一个堆叠条形图。这是我在R中的第一个项目

以下是我的数据和我想做的事情:

它会影响该地区某个供应商的支线巴士服务质量。对于列车的每个用户,我们根据车站公共汽车和列车之间的同步分配服务质量,并计算具有理想或非常好的服务、正确的服务、不足的服务或根本没有服务的用户百分比(与中的问题相关)

所以,它就像使用我的第一列作为我的x轴标签,使用我的标题作为我的类别。对于每一行,数据已经标准化为100%

在Excel中,只需单击几下,我不介意键入几行代码,因为这是已经相当长的plpgsql脚本的最终结果。。。我更喜欢继续编写代码,而不是使用Excel(我还有很多工作要做)

因此,我尝试使用Nathan Yau的《想象这一切》和《R在行动》一书中的例子创建一个堆叠的酒吧,但并不十分成功。通常情况下,他们的示例使用与R聚合的数据并使用该数据。我的已经聚合了

所以,我终于想出了一些在R中有效的方法:

但我必须对数据进行大量转换:

我必须转置我的表并删除我现在的行(列)标识符

这是我的密码:

# load libraries
library(ggplot2)
library(reshape2)

# load data
stl <- read.csv("D:/TEMP/rabat/_stl_rabattement_stats_mtl.csv", sep=";", header=TRUE)

# reshape for plotting
stl_matrix <- as.matrix(stl)

# make a quick plot
barplot(stl_matrix, border=NA, space=0.1, ylim=c(0, 100), xlab="Trains", ylab="%",
main="Qualité du rabattement, STL", las = 3)
#加载库
图书馆(GG2)
图书馆(E2)
#加载数据

stl似乎是您手动转置了矩阵。这可以通过使用
t()
函数在R中完成

as.matrix(stl)
行之后添加以下行:



stl_矩阵尝试
ggplot2
重塑
库。你应该能够得到你想要的图表

stl$train_order <- as.numeric(rownames(stl))
stl.r <- melt(stl, id.vars = c("train_no", "train_order"))
stl.r$train_no <- factor(
    stl.r$train_no, 
    levels = stl$train_no[order(stl$train_order)])    
ggplot(stl.r, aes(x = factor(train_no), y = value, fill = variable)) + geom_bar(stat = 'identity')

stl$train\u order我试过了,但它将我的第一列(train\u no)作为一个值…:(尽管有一个小问题……当我使用手动转置表时,顺序是我在表中给出的顺序(912在928之后)。不是,我的车次已排序,我希望保留原始顺序(在出发时…)谢谢你的帮助。它不起作用,但我会继续尝试。我把我的数据放在这里:还有我的脚本以防万一……;)这确实是一个不同的问题(请参阅),但我为这个问题再次编辑了答案。我非常抱歉延迟,但我目前正在休育儿假,我2周大的儿子没有给我很多时间来提高我的R.;)所以,今天下午我花了半个小时在我的脚本中添加了您的更改,效果很好!!:)非常感谢你的时间!!