我有一组数据,我正在闪亮的应用程序上运行直方图。 x轴上的值范围是0-700,y轴是每个增量的比例频率(binwidth = 5)。我在scale_x_continuous
上添加了sliderInput
,以便允许x轴进行调整。例如,我只想看到x值在500和600之间的比例频率。当我添加它时,结果数据显示在这一个间隔内的数据比例。例如,如果我在500-600范围内只有1 x值,则y轴将显示1(500-600范围内的1个值构成500-600范围内的值的100%)。但是,我希望这仍然使用相同的比例,就像显示全部范围的x变量一样(即,与x范围为0-700时的频率相同)。
output$hist <- renderPlot({
ggplot(universe, aes(Price)) +
geom_histogram(data = other, binwidth = 5, fill = "red", alpha = 0.2, aes(y=..count../sum(..count..))) +
geom_histogram(data = barcelona, binwidth = 5, fill = "blue", alpha = 0.2,aes(y=..count../sum(..count..))) +
scale_x_continuous(limits = c(input$range[1], input$range[2]))
})
以上代码是我如何生成直方图。 input$range
已从sliderInput
中的ui.R
中提取出来。你知道如何让scale_x_continuous
的选择不影响(y=..count../sum(..count..))
)的分母。
答案 0 :(得分:1)
使用coord_cartesian(xlim=...)
代替scale_x_continuous()
。
设置坐标系的限制将缩放绘图(就像你用放大镜看一样),并且不会像刻度上的设置限制那样改变基础数据。