将列表传递到绘图模式

问题描述 投票:0回答:1

我有一个包含理论和实验数据的数据集,我想将它们绘制到同一张图表上。我希望理论数据用“线”绘制,实验数据用“标记”绘制。这有点具有挑战性,因为两个数据集具有不同数量的数据点。

我创建了一个简化的可重现示例:

library(plotly)
library(colorBlindness)

experimentaldata<-data.frame(hours=c(1,2,3,4,5,6,7,8,9),
                             concentration=c(0.25, 0.3, 0.8, 0.75, 0.3, 0.1, 0.9, 0.98, 1),
                             name=c("Chloride", "Chloride", "Chloride", "Sulfate", "Sulfate", "Sulfate", "Bicarbonate", "Bicarbonate", "Bicarbonate"))

theoreticaldata<-data.frame(hours=c(1, 3, 5, 7, 9),
                            concentration=c(0.45, 0.38, 0.27, 0.8, 0.66),
                            name=c("Chloride_exp", "Chloride_exp", "Chloride_exp", "Sulfate_exp", "Sulfate_exp")
                            )

allchemicals<-rbind(experimentaldata, theoreticaldata)


fig<-plot_ly(allchemicals, x=~hours, y=~concentration,type='scatter', mode="lines", color=~name, colors=SteppedSequential5Steps)
  
print(fig)

此代码采用两个数据集,将它们绑定在一起,然后绘制它们。我尝试将模式作为列表传递,例如

modes=c("markers", "markers", "markers",...,"lines") 但一次只能采用一种模式。有什么办法解决这个问题吗?

谢谢你

r ggplot2 plotly visualization
1个回答
0
投票

像这样的

add_trace()

fig <- plot_ly(experimentaldata, x=~hours, y=~concentration,type='scatter', 
                mode="lines", 
                color=~name, colors=SteppedSequential5Steps)

fig %>% add_trace(data=theoreticaldata, y=~concentration,
              x=~hours,
              mode='markers')

© www.soinside.com 2019 - 2024. All rights reserved.