Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.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意大利面图-使用连接点更改线颜色_R - Fatal编程技术网

R意大利面图-使用连接点更改线颜色

R意大利面图-使用连接点更改线颜色,r,R,意大利面地块,带有geom_线和geom_平滑。 我必须根据“时间步长””绘制“f0”,线条根据因子“部分””改变颜色,而不在其两个级别“os”和“fv”之间断开连接。当“零件”更改时,平滑也会消失 我的数据集的结构: structure(list(time_steps = 1:20, f0.2 = c(203.61, 204.62, 204.23, 207.71, 198.5, 184.43, 185.15, 182.13, 183.2, 189.47, 188.88, 188.43, 1

意大利面地块,带有geom_线和geom_平滑。 我必须根据“
时间步长”
”绘制“
f0
”,线条根据因子“
部分”
”改变颜色,而不在其两个级别“
os
”和“
fv
”之间断开连接。当“
零件
”更改时,平滑也会消失

我的数据集的结构:

structure(list(time_steps = 1:20, f0.2 = c(203.61, 204.62, 204.23, 
207.71, 198.5, 184.43, 185.15, 182.13, 183.2, 189.47, 188.88, 
188.43, 188.53, 189.41, 191.15, 193.76, 196.6, 199.44, 201.45, 
202.53), part = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("os", 
"fv"), class = "factor")), row.names = c(NA, -20L), class = "data.frame")
我写的代码是:

ggplot (df, aes(time_steps, f0, colour = (part))) +
  geom_line(alpha = 0.1) + geom_smooth(size = 2)
我用断开的线得到的图:


是否有人提出了解决此问题的建议?

按颜色打断线图将始终留下一个间隙,除非零件的两个值之间存在共同点。该间隙表示
部分==“os”
没有
时间步长值>10
部分==“fv”
没有
时间步长值<12

使用一些看起来像你的模拟数据,这里有一个解决方法。它包括两次使用
geom_线
,一次不使用颜色贴图,以便连接点。然后我使用了两次
stat\u smooth()
(一次用于线条,一次用于功能区),因为它可以更好地控制绘图的外观

df <- data.frame(time_steps = 1:20,
                 f0 = round(runif(20, 190, 210)),
                 part = c(rep("os", 10), rep("fv", 10)))

ggplot(df) +
   geom_line(aes(x = time_steps, y = f0), color = "black", size = 1.5, alpha = 0.5) +
   geom_line(aes(x = time_steps, y = f0, color = part), size = 1.5, alpha = 1) +
   stat_smooth(geom ='line', aes(x = time_steps, y = f0), color = "black", size = 1.5, linetype = 2, alpha=0.5) + 
   stat_smooth(geom = 'ribbon', aes(x = time_steps, y = f0), color = "NA", fill = "black", alpha = 0.1)

df您可以使用
dput(您的数据)
并将其粘贴到您的问题中吗
str()
不提供可重复使用的数据。此外,按颜色打断线图将始终留下一个间隙,除非
部分的两个值之间有一个共同点。该间隙表示
部分==“os”
没有
时间步长值>10
,而
部分==“fv”
没有
时间步长值<12
。您好,非常感谢!这是数据帧:结构(列表(时间步长=1:20,f0.2=c(203.61204.62204.23207.71198.5184.43185.15182.13183.2189.47188.88188.43188.53189.41191.15193.76196.6199.44201.45202.53),部分=结构(c(1L、1L、1L、1L、1L、1L、1L、1L、1L、2L、2L、2L、2L、2L、2L、2L、2L、2L、.Label=c(“os”、“fv”)、class=“factor”)、row.names=c(NA,-20L)、class=“data.frame”)实际上在10和12之间的时间步长有“11”值(第一个值移到“fv”,所以从1到10是“os”,从11到20是“fv”)。此外,我需要将生成的线条平滑,并使其看起来像一条曲线,就像我贴在帖子上的图片一样。你有什么建议吗?非常感谢