r - 抑制 ggplot2 图中的非整数轴中断(在 Shiny 应用程序中)
问题描述
我已经尝试了如何使用 ggplot2 在轴上仅显示整数值中推荐的所有解决方案。不幸的是,我无法解决其中任何一个问题。
我创建了一个闪亮的应用程序,它可以生成关于各种变量的年度数据的折线图。这适用于大多数参数化:
没有非整数中断
但是,如果我在滑块上选择某些时间跨度,它会生成在 x 轴上具有非整数中断的图形,这对于年度数据没有意义。
有非整数中断
编辑:这里是应用程序的最小可复制版本
library(tidyverse)
library(shiny)
options(scipen = 999)
# Data
data1<-data.frame(values = c(15500, 16300, 18200, 28300, 23500, 23700,
31500, 35800, 34700, 36900, 40000, 44700,
53300, 55800, 69800, 89500, 1.13E+5,
1.53E+5, 1.77E+5, 1.83E+5, 1.99E+5),
year = seq(1990, 2010, 1))
#Shiny app
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
sliderInput("period", "Year:", min = 1990, max = 2010, value = c(1990, 2010), sep = "")),
mainPanel(plotOutput("ggplot2"))))
server <- function(input, output) {
data1_subset <- reactive({
filter(data1, year >= input$period[1] & year <= input$period[2])
})
output$ggplot2 <- renderPlot({
ggplot(data = data1_subset(), aes(x = year, y = values)) +
geom_line(aes(color = "red")) +
scale_x_continuous(name = "Year") +
scale_color_discrete(guide=FALSE)+
theme_minimal()
})
}
shinyApp(ui = ui, server = server)
要查看问题,请选择例如时间跨度 2000-2010
有什么方法可以抑制非整数中断,因为年度数据显然是无意义的?
非常感谢您的帮助!
解决方案
谢谢你的帮助!似乎答案比我想象的要简单得多。放入breaks = function(x) unique(floor(pretty(x)))
我的scale_x_continuous()
函数会产生仅整数的中断,即使没有将数据转换为Date
格式。在我的情况下,删除unique()
不会改变行为,但在其他情况下可能会这样做。
推荐阅读
- kubernetes - 运行 `linkerd upgrade --from-manifests` 时没有类型的“APIService”注册错误
- list - 如何订购firebase的文件?
- c# - 如何将子项从 ListBox 添加到 ListView?
- python - use ValueProvider to format a BigQuery in Dataflow
- php - 联系表格 7 提交后调用 PHP 函数
- google-apps-script - 使用谷歌应用脚本设置文件共享权限的到期日期
- php - url重写:域名后的id
- java - 将参数类型绑定到多个候选者之一
- date - Neo4j 日期和日期时间比较问题
- python - python过滤散点图基准日期