我正致力于在移动应用程序中可视化用户触摸交互。我想将它们绘制在一个按行动类型进行颜色编码的一维时间轴中。
,即我的两个变量是时间(以毫秒为单位,在x轴上)和触摸类型(用于对线进行颜色编码)。颜色应该能够重复。
理想情况下,情节看起来像this,我发现this previous question可以提供类似的东西,但我想知道是否有更好的东西。
是否有其他使用R的方法可以让我这样做?
答案 0 :(得分:0)
如果没有一个工作示例,我建议您使用ggplot2
包(以及ggfortify
),它允许您将变量(此处:操作类型)映射到颜色。常见的替代方法是尺寸(点/点)或厚度(线)。
此外,您可能会发现时间序列ts
个对象(请参阅example/reference here)有所帮助。但是,对于您对绘图感兴趣的数据类型并不是必需的。祝你好运!
答案 1 :(得分:0)
我有基本R方法的工作方式。它有点hacky,但通过一些调整它应该很好地工作。我已经删除了对data.table
,timeline
和ggplot
包的依赖,选择使用polygon
功能。
df <- data.frame(Set=c("x","y","z","x","y","z","x","y","z","x","y","z","x"),
StartDate=c(1380708900,1402963200,1420070400,1421280000,1410912000,1396310400,1397520000,1418860800,1404172800,1405382400,1395100800,1412121600,1413331200),
EndDate= c(1395099900,1404171900,1421279100,1430985600,1412120700,1397519100,1402962300,1420069500,1405381500,1410911100,1396309500,1413330300,1418859900))
df$StartLabel <- as.POSIXct(df$StartDate,tz="UTC",origin="1970-01-01")
df$Set <- as.factor(df$Set)
以上设置data.frame
对象。
这会设置绘图画布
plot(c(df$StartDate[1], tail(df$EndDate,1)), c(0.4,0.65),
type='n', xlab='Time', ylab='', axes=FALSE)
这个clunk-ily遍历你的值并为每次观察的每个时间段绘制一个彩色多边形
for(i in 1:nrow(df)){
polygon(x=c(rep(df$StartDate[i],2), rep(df$EndDate[i],2)),
y=c(0.6,0.4,0.4,0.6), col=rainbow(3, alpha=0.75)[df$Set[i]],
border=rainbow(3)[df$Set[i]])
}
然后我添加了轴(这可能会使用一些调整,具体取决于你要显示的日期信息的数量。
axis(1, labels=df$StartLabel, at=df$StartDate)
然后设置图表顶部的图例。
legend('top', horiz=TRUE,
c('Test set', 'Training set', 'Validation set'),
pch=16, col=rainbow(3), bty='n', x.intersp=1.5, title='Group')
希望这有帮助。