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

R Shiny中ggplot2点图缩放时圆点溢出绘图区问题

R Shiny响应式ggplot2点图边界溢出问题

问题现象

在R Shiny应用中构建可随屏幕尺寸响应的ggplot2点图时,当窗口宽度发生变化,绘图区与分箱宽度会同步改变,导致堆叠的圆点经缩放后溢出绘图区边界。

注:相关绘图逻辑封装在独立函数中,未直接写入output变量,因业务需求需多次调用。

问题复现代码

d_frame <- df_galaxy
d_frame <- na.omit(d_frame)
d_frame <- scale(d_frame)
d_frame <- d_frame[,c(5,6)]
kmeans_g <- kmeans(d_frame, centers = 5, nstart = 25) 
dfd <- df_galaxy 
dfd$clusterid <- kmeans_g$cluster
split_dfd <- split(dfd[,c(6)],dfd$clusterid)
data <- melt(split_dfd,measure.vars = names(dfd[,c(6)]))
names(data) <- c("variable","value","clusterid")
ggplot(data,aes(x=value,fill=variable)) +
      geom_density(aes(y = ..density.. * (nrow(data))), col = 2,alpha=0.2) + 
      geom_dotplot(binwidth = 12, 
                   stackgroups = TRUE, binpositions="all",
                   aes(fill=clusterid),alpha=0.6,method = "histodot") +
      labs(x=names(dfd[,c(6)]),y="density") + 
      coord_cartesian(ylim=c(0,2))

已加载依赖包

library(shiny)
library(LaplacesDemon)
library(ggcleveland)
library(ggplot2)
library(dplyr) 
library(GGally)
library(tidyverse)
library(cluster)
library(factoextra)
library(gridExtra)
library(vcd)
library(sjmisc)
library(reshape2)
library(ggdist)

效果参考

  • 正常效果:圆点正常显示在绘图区内
  • 异常效果:圆点溢出绘图区边界

需求目标

需要实现类似maxheight的高度限制效果,或配置相对于绘图宽度的响应式binwidth参数,目前暂未找到可行解决方案。


内容的提问来源于stack exchange,提问作者STO.FAN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:24:28