如何在R Plotly多线图中通过SIZE列定义标记点大小?
解决方法
你只需要在add_markers()函数中添加size = ~SIZE参数,就能让标记点大小由数据框的SIZE列控制。另外原代码里的eval(parse(text=...))完全没必要,plotly支持直接用公式引用数据列,修改后的代码更简洁:
library(plotly) df = data.frame(DATE = c('2022-09-01','2022-09-02','2022-09-03','2022-09-04', '2022-09-01','2022-09-02','2022-09-03','2022-09-04'), SIZE = c(200,200,180, 110, 20, 15, 15, 10), PRICE = c(99, 95.5, 96, 96, 80, 79, 77, 77), ID = c('ABC','ABC','ABC','ABC','DEF','DEF','DEF','DEF'), stringsAsFactors = F) df$DATE = as.Date(df$DATE) plt <- df %>% plot_ly( x = ~DATE, y = ~PRICE, color = ~ID, name = ~ID, connectgaps = TRUE) %>% add_lines() %>% add_markers(size = ~SIZE) # 关键:添加size参数绑定SIZE列 plt
额外优化说明
如果默认的标记大小不符合预期,可以通过sizeref和sizemode参数调整缩放比例,比如:
add_markers(size = ~SIZE, sizeref = 0.1, sizemode = "area")
sizeref:数值越小,标记点越大;数值越大,标记点越小,用来适配你的SIZE列数值范围。sizemode:可选"area"(默认,按面积缩放)或"diameter"(按直径缩放)。
内容的提问来源于stack exchange,提问作者Angelo
相关产品推荐
相关产品推荐

