我在excel中有一个数据集。共有9列:
col1 - member_id
col2 - A_timespent_in_hrs
col3 - B_timespent_in_hrs
col4 - total_timespent_in_hrs(col2 + col3)
col5 - A_pv(不在问题中考虑)
col6 - B_pv(不在问题中考虑)
col7 - total_pv(col5 + col6)(不在问题中考虑)
col8 - A_timespent_in_hrs%wrt to total_timespent_in_hrs
col9 - B__timespent_in_hrs%wrt to total_timespent_in_hrs
我需要在R(折线图)中绘制图形,其中我需要在x轴上显示col8(A_timespent_in_hrs%)和col9(B_timespent_in_hrs%)以及在y轴上显示col1(member_id)的计数。
示例数据:
document.onkeydown = document.onkeyup = document.onkeypress = function (e){
return false;
}
这里我试图在x轴上绘制col8和col9的百分比,在y轴上绘制col1的数量。
图表应为单行,例如col8从0,0开始,100%值开始,因此col9在该点为0%,类似于任何点 在x轴上,col9为100%,因此col8在该点为0%。
在图表的中间,col8和col9都会显示col1计数的50%。
注意:col8和col9在添加时总是给出100%(0 + 100,1 + 99,2 + 98,3 + 97)
提前致谢,
尼尔
答案 0 :(得分:0)
如果我说得对,你需要像
这样的东西我在我的简单数据上显示
data=data.frame( a=c(10,10,30,30,100),val=c(43,54,21,34,67))
data$b=100-data$a
1)计算col8和col9(我使用dplyr)
data1=group_by(data,a,b)
data1=summarize(data1,cnt=n())
2)情节
par(xpd=T)
plot(data1$a,data1$cnt,xlim=c(0,100),type="l",col="red",xaxt="n",xlab="")
text(cex=1, x=(0:10)*10, y=min(data1$cnt)-0.1, paste0((0:10)*10,"a"), xpd=TRUE, srt=90, pos=2)
par(new=T)
plot(data1$b,data1$cnt,xlim=c(0,100),type="l",col="green",xaxt="n",xlab="")
text(cex=1, x=(10:0)*10, y=min(data1$cnt)-0.25, paste0((0:10)*10,"b"), xpd=TRUE, srt=90, pos=2)
输出
我认为主要是你需要的par(new=T)
对于ggplot你可以简单地
ggplot(data1) +
geom_line(aes(y = cnt,x=a, colour = "green"),) +
geom_line(aes(y = cnt,x=b, colour = "red"))+
xlab("")+
theme_bw()+theme(legend.position = "none")+
scale_x_continuous(name="",
breaks = c(0,10, 20, 30, 40, 50,60,70,80,90,100),
labels = c('0a\n100b','10a\n90b', '20a\n80b', '30a\n70b', '40a\n60b', '50a\n50b', '60a\n40b'
, '70a\n30b'
, '80a\n20b' , '90a\n10b' , '100a\n0b'))