You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中用Plotly实现散点图与不同数据箱线图并排绘制?

没问题!在R的Plotly里实现散点图和箱线图并排展示其实超简单,核心就是用subplot()函数来组合两个独立的图表。我给你整理了完整的实现思路和代码示例,你可以直接套用到自己的数据集上:

步骤1:分别创建散点图和箱线图对象

先把你已经做好的散点图单独存成一个对象,再基于你的另一组数据创建箱线图对象。这里我用R自带的mtcars数据集做演示,你直接替换成自己的数据就行:

library(plotly)

# 1. 创建你的散点图(替换成你已有的散点图代码)
scatter_plot <- plot_ly(data = mtcars, x = ~wt, y = ~mpg, 
                        type = "scatter", mode = "markers",
                        marker = list(color = "#2E86AB")) %>%
  layout(title = "散点图:车重 vs 油耗",
         xaxis = list(title = "车重(1000lbs)"),
         yaxis = list(title = "油耗(mpg)"))

# 2. 创建基于另一组数据的箱线图(替换成你的箱线图数据)
box_plot <- plot_ly(data = mtcars, x = ~factor(cyl), y = ~mpg,
                    type = "box", color = ~factor(cyl),
                    colors = c("#F24C4E", "#F7B32B", "#53BF9D")) %>%
  layout(title = "箱线图:气缸数 vs 油耗",
         xaxis = list(title = "气缸数"),
         yaxis = list(title = "油耗(mpg)"))

步骤2:用subplot()横向并排展示两个图表

用subplot()把两个图表拼在一起,通过参数控制布局:

  • nrows = 1:设置为1行,实现横向并排
  • shareY = TRUE:共享Y轴(如果你的两个图Y轴含义一致的话,这样更美观;如果不一致可以改成FALSE)
  • margin:调整两个图之间的间距,避免重叠
# 组合两个图表
combined_plot <- subplot(scatter_plot, box_plot,
                         nrows = 1, shareY = TRUE,
                         margin = 0.08) %>%
  layout(title = list(text = "散点图 + 箱线图 并排展示", x = 0.5), # 整体居中标题
         showlegend = FALSE) # 如果不需要重复图例可以关掉

# 展示最终图表
combined_plot

关键提示

  • 你只需要把示例里的scatter_plot替换成你已经写好的散点图代码,box_plot替换成你基于另一组数据的箱线图代码就行
  • 如果两个图表的Y轴含义不同,记得把shareY改成FALSE,并分别设置各自的Y轴标题
  • 可以通过调整margin参数的值来控制两个图之间的距离,数值越大间距越宽

内容的提问来源于stack exchange,提问作者Jensxy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:59:45