R中的绘图线型属性设置
plotly linetype poperty setting in R
我正在尝试为 plotly 中的多行设置行类型("solid"、"dash"、"dot" 等)。我的数据框中有一列(因子变量),它指定了线的类型。
下面是我正在使用的示例代码。
mydf <- data.frame(x = c(1:10), y1 = c(11:20), y2 = c(21:30))
mydf1 <- gather(mydf,'var', 'val', -x)
mydf1$lt <- factor(c(rep("solid",10),rep("dot",10)))
pal <- RColorBrewer::brewer.pal(nlevels(mydf1$lt),"Set1")
p <-plot_ly(mydf1, x = x, y = val, type = 'line', color = var,colors = pal,line = list(width = 3, dash = lt))
p<- layout(p,title = "Hello", annotations = list(x = mydf1$x, y = mydf1$var))
p
mydf1$lt 指定所需的线型。
上面的例子,y1必须是实线,y2必须是虚线。
我可以通过使用 add_trace() 单独添加行来解决问题。我正在寻找一种更简洁、优雅的方式来做同样的事情。以下是一种可能的解决方案。
p1 <- plot_ly(mydf)
p1 <- add_trace(p1, x = x, y = y1, line = list(dash = "dash"))
p1 <- add_trace(p1, x = x, y = y2, line = list(dash = "solid"))
p1
For the above example, y1 must be solid line and y2 must be dotted
line.
你可以
library(ggplot2)
library(tidyr)
library(plotly)
mydf <- data.frame(x = c(1:10), y1 = c(11:20), y2 = c(21:30))
mydf1 <- gather(mydf,'var', 'val', -x)
mydf1$lt <- factor(c(rep("solid",10),rep("dot",10)))
pal <- RColorBrewer::brewer.pal(nlevels(mydf1$lt),"Set1")
p <-plot_ly(
transform(mydf1, lt=c(solid="solid", dot="3")[lt]),
x = x,
y = val,
type = 'line',
color = var,
colors = pal,
line = list(dash = lt)
)
p <- layout(
p,
title = "Hello",
annotations = list(x = mydf1$x, y = mydf1$var)
)
p
或者 c(solid="3", dot="solid")[lt]
如果你想反过来。
我正在尝试为 plotly 中的多行设置行类型("solid"、"dash"、"dot" 等)。我的数据框中有一列(因子变量),它指定了线的类型。
下面是我正在使用的示例代码。
mydf <- data.frame(x = c(1:10), y1 = c(11:20), y2 = c(21:30))
mydf1 <- gather(mydf,'var', 'val', -x)
mydf1$lt <- factor(c(rep("solid",10),rep("dot",10)))
pal <- RColorBrewer::brewer.pal(nlevels(mydf1$lt),"Set1")
p <-plot_ly(mydf1, x = x, y = val, type = 'line', color = var,colors = pal,line = list(width = 3, dash = lt))
p<- layout(p,title = "Hello", annotations = list(x = mydf1$x, y = mydf1$var))
p
mydf1$lt 指定所需的线型。 上面的例子,y1必须是实线,y2必须是虚线。
我可以通过使用 add_trace() 单独添加行来解决问题。我正在寻找一种更简洁、优雅的方式来做同样的事情。以下是一种可能的解决方案。
p1 <- plot_ly(mydf)
p1 <- add_trace(p1, x = x, y = y1, line = list(dash = "dash"))
p1 <- add_trace(p1, x = x, y = y2, line = list(dash = "solid"))
p1
For the above example, y1 must be solid line and y2 must be dotted line.
你可以
library(ggplot2)
library(tidyr)
library(plotly)
mydf <- data.frame(x = c(1:10), y1 = c(11:20), y2 = c(21:30))
mydf1 <- gather(mydf,'var', 'val', -x)
mydf1$lt <- factor(c(rep("solid",10),rep("dot",10)))
pal <- RColorBrewer::brewer.pal(nlevels(mydf1$lt),"Set1")
p <-plot_ly(
transform(mydf1, lt=c(solid="solid", dot="3")[lt]),
x = x,
y = val,
type = 'line',
color = var,
colors = pal,
line = list(dash = lt)
)
p <- layout(
p,
title = "Hello",
annotations = list(x = mydf1$x, y = mydf1$var)
)
p
或者 c(solid="3", dot="solid")[lt]
如果你想反过来。