尽管这是由于一个bugly(见takje的评论)引起的,您可以通过将您的绘图不是作为具有多个宽度的单一线条来处理此错误,而是将具有固定宽度的多个线段。
首先,设置数据:
library(ggplot2)
library(plotly)
set.seed(123)
df1 <- as.data.frame(list('x'=1:100,'y'=1:100,'lw'=abs(rnorm(100))))
现在我们构建一个包含每个线段的起点和终点新的数据帧。即第n条线段从(x_n,y_n)变为(x_n + 1,y_n + 1)。以下代码中的重复(rep)是因为中间点形成一个段的端点,也是下一个段的起点。整套的第一个和最后一个点,因为它们只出现在一个单一的线段不重复:
x2 <- c(df1$x[1], rep(df1$x[2:(NROW(df1)-1)], each=2), df1$x[NROW(df1)])
y2 <- c(df1$y[1], rep(df1$y[2:(NROW(df1)-1)], each=2), df1$y[NROW(df1)])
df2 <- data.frame(x2,y2)
接下来,我们标注每个X,并用segnum标记y坐标,该指线段它们在:
df2$segnum <- rep(1:(NROW(df1)-1), each=2)
和对应于这些段号,以及包含每个段的线宽度的另一种载体:
df2$segw <- rep(df1$lw[1:(NROW(df1)-1)], each=2)
和情节:
ggplot(data=df2, aes(x=x2,y=y2, colour=segnum)) + geom_line(aes(group = segnum, size=segw))
在plotly
另外:
ggplotly()
来源
2016-04-26 16:11:15
dww
它看起来像我的错误。非常类似于这个:https://github.com/ropensci/plotly/issues/340。也许你可以在同一个线程中发布你的稍微不同的问题。你可以尝试绘制没有变量大小的真实数据吗? – takje
使用geom_polygon而不是geom_line绘制相同的东西的解决方法应该不会太难。这会满足您的需求吗? – dww
这应该工作。你有什么想法? –