Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R &引用;“已解决”;为什么ggplot2会画一个;“中断”;(移位)时间序列线图?_R_Ggplot2_Time Series_Posixct - Fatal编程技术网

R &引用;“已解决”;为什么ggplot2会画一个;“中断”;(移位)时间序列线图?

R &引用;“已解决”;为什么ggplot2会画一个;“中断”;(移位)时间序列线图?,r,ggplot2,time-series,posixct,R,Ggplot2,Time Series,Posixct,首先,我想对你对我的描述感到困惑表示抱歉,因为我的英语很差。我尽我所能解释我的问题,如果你有什么不明白的,请添加评论,我会解释更多细节 用于绘制这样的绘图的数据集(这里的图像只是其中的一部分): 我已将dput的输出放在下面。 这是直线加速器捕获的带有时间戳的运动数据。我使用ggplot2绘制直线图,以在报告中显示这一点。这是我的代码: ...... #Convert timestamp format time <- gsub(":", ".", x) time <- strpti

首先,我想对你对我的描述感到困惑表示抱歉,因为我的英语很差。我尽我所能解释我的问题,如果你有什么不明白的,请添加评论,我会解释更多细节

用于绘制这样的绘图的数据集(这里的图像只是其中的一部分):
我已将dput的输出放在下面。

这是直线加速器捕获的带有时间戳的运动数据。我使用ggplot2绘制直线图,以在报告中显示这一点。这是我的代码:

......
#Convert timestamp format
time <- gsub(":", ".", x)
time <- strptime(time, format = "%H.%M.%OS")
time <- as.POSIXct(time)
df["time"] <- time

# Person B Plot
p <- ggplot(df, aes(x = time)) +
  scale_x_datetime(name = "Time", labels = date_format("%H:%M:%OS")) +
  ylab("PCA") +
  geom_hline(aes(yintercept = 0)) +
  scale_colour_manual("", values = c("PCA_A" = "hotpink3", "PCA_B" = "steelblue3", "Correlation" = "chocolate")) +
  geom_line(aes(y = PCA_b, group = 1, colour = "PCA_B"), size = 0) +
  # theme(text = element_text(size = 23), plot.title = element_text(hjust = 0.5)) +
  ggtitle("PCA_Two")
----------更新21/4/2020

我发现了一件很有趣的事。如果数据集的大小小于277,则绘图将是完美的。否则277号点会移动。我使用277大小的dput制作了一个。有人能测试吗?我的阴谋将会失败
感谢@chemdork123的帮助。我发现在一秒钟内,断点周围的所有数据都消失在原始数据集中。这应该是研究仪器的失败


答案很简单,让我看起来像个傻瓜XD。

在您所指示的圆圈之间,原始数据是什么样子的?欢迎使用堆栈溢出!您能否通过共享您的数据样本使您的问题重现,以便其他人能够提供帮助(请不要使用
str()
head()
或屏幕截图)?您可以使用和包来帮助您实现这一点。另请参见&@teunbrand原始数据集太大,我无法找到断点。这是一个移动数据,所以应该是平滑的。Hi@Tung,谢谢你的建议和指导,但原始数据是500多行csv文件,我不能直接在帖子中共享。Hi Samuel-你可以使用
dput(df[X:Y,])发布数据中断附近的数据集部分(因为这是特别有趣的部分)
,其中“X”和“Y”表示要导出的数据集行的限制。我认为即使是发20或50行也可能足够了。如果重要位之间有数千行,可以使用dput(df[sample(X:Y,num),]),其中“num”表示要在“X”和“Y”之间随机采样的行数。这些都是分享大数据集一部分的好方法,因此我们可以最好地帮助您。只要您学到了一些东西,这是一个值得问的问题。这里的一位科学家同事说:唯一糟糕的问题是你没有学到任何新东西。
structure(list(time = structure(c(1587503540.556, 1587503540.577, 
1587503540.615, 1587503540.637, 1587503540.675, 1587503540.696, 
1587503540.716, 1587503540.756, 1587503540.776, 1587503540.817, 
1587503540.837, 1587503540.876, 1587503540.893, 1587503540.915, 
1587503540.937, 1587503540.976, 1587503540.997, 1587503541.018, 
1587503541.059, 1587503541.078, 1587503541.117, 1587503541.138, 
1587503541.18, 1587503541.201, 1587503541.24, 1587503541.26, 
1587503541.3, 1587503541.339, 1587503541.358, 1587503541.4, 1587503541.423
), class = c("POSIXct", "POSIXt"), tzone = ""), PCA_a = c(1.56737319252217, 
2.04606254627585, 2.49366222484302, 2.88101522283612, 3.18379411504211, 
3.38503090762478, 3.47436865063648, 3.44747654856326, 3.30707775976109, 
3.06371801441373, 2.73437161733756, 2.33935677190782, 1.89968708587307, 
1.43586301558354, 0.967277030171067, 0.511214148600076, 0.0816220889456876, 
-0.311381715806983, -0.661355048674678, -0.965683235694069, -1.22624198074107, 
-1.44997061419577, -1.64740413737597, -1.82782646420492, -1.99421995781177, 
-2.14199256386341, -2.26073408401317, -2.33585157388011, -2.34937651266747, 
-2.28185734041769, -2.11603996134387), PCA_b = c(0.428589019048672, 
0.437715207869297, 0.44415836273225, 0.447676595545035, 0.448336071890988, 
0.446396459498192, 0.442205853553038, 0.43616876635858, 0.42877854629294, 
0.420603253124693, 0.412148862183822, 0.403676755189904, 0.395124979959946, 
0.386241966203463, 0.376849622459395, 0.367015680942488, 0.35712348581213, 
0.347977244142877, 0.340825041944267, 0.337103574812562, 0.338073413214583, 
0.344591707232845, 0.35695103029739, 0.374713701538921, 0.396660690638421, 
0.420888192551911, 0.445042523797771, 0.466693774961235, 0.483678597255532, 
0.494312865435414, 0.497599592736315), cor = c(0.787242026266416, 
NA, NA, NA, NA, NA, NA, NA, NA, 0.297936210131332, NA, NA, NA, 
NA, NA, NA, NA, NA, -0.074108818011257, NA, NA, NA, NA, NA, NA, 
NA, NA, -0.437523452157598, NA, NA, NA)), row.names = 20:50, class = "data.frame")