当我使用我的Shiny小部件时,我的ggplot会调整大小:如何阻止它?

时间:2014-04-10 21:24:40

标签: r plot ggplot2 shiny

在交互式绘图中使用单选按钮或滑块的好处是能够看到输出值在展开,限制或以其他方式修改输入值时如何变化。

考虑到这一点,保持屏幕上绘图的大小不变是很自然的,并保持x和y轴的比例不变。

就我而言,随着我的气泡图中点数的选择发生变化,ggplot的尺寸会发生变化;也就是说,x和y轴缩小或扩展以最佳地容纳数据,和/或屏幕上的物理尺寸改变。这会扭曲我的气泡半径,拉伸或挤压它们。

为了解决这个问题,我看了两个显而易见的地方:

mainPanel(
      tabsetPanel(
        tabPanel("Plot", plotOutput("bubbleplot")), height=1000, width=800))

...最初设置高度和宽度,但是当窗口小部件被激活时,这不会保持固定,并且...

output$bubbleplot <- renderPlot({
  print(getPlot(df, <inputs>))
  }, 
  width = 1000,
  height = 800
)

...与上面相同:最初看起来不错,但不能作为x轴和y轴长度的全局控制。

请原谅我是大胆的,但似乎我所说的对于使用Shiny的人来说可能是一个非常非常常见的话题 - 我想我很惊讶这个简单的任务是如此困难,和/或这个没有在Shiny包中解决。

如何修复Shiny中的绘图尺寸,当我与绘图交互时保持固定?

感谢您阅读本文。

1 个答案:

答案 0 :(得分:1)

就轴刻度而言,您需要在ggplot函数中定义它们:

# assuming inside your getPlot() function there's a ggplot() call
g <- ggplot(data) + geom_whatever(etc)
g <- g + ylim(minY,maxY) + xlim(minX,maxX)
g

更多信息:http://www.cookbook-r.com/Graphs/Axes_(ggplot2)/#setting-range-and-reversing-direction-of-an-axis

相关:我也想知道如何修正情节的大小。