这是我在StackOverflow上的第一篇文章,我将尽可能地回答我的问题。
我还要指出,我已经尝试了How to display only integer values on an axis using ggplot2中推荐的所有解决方案。不幸的是,我无法用任何一个解决问题。
我创建了一个Shiny应用程序,该应用程序可以生成各种变量的年度数据折线图。对于大多数参数设置来说,效果很好:
没有非整数中断
但是,如果我在滑块上选择特定的时间跨度,则会生成在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
由于年度数据显然不合常理,有没有办法抑制非整数中断?
非常感谢您的帮助!
答案 0 :(得分:0)
您应注意为日期列<td>{{ $thought->user->username}} <span>ID - {{ $thought->user_id}}</span></td>
使用正确的类(类似于year
或Date
)。正如评论所建议的那样,您需要选择一个特定的日期,例如POSIXct
。这将告知Jan 1st
您可能打算做什么,并使您更容易将显示格式引导到有意义的地方。
它将立即可用,您可以使用ggplot2
的{{3}}对其进行更多调整。
实现了带有所提出想法的reprex(以及关于固定线条颜色的另一个故障):
ggplot
答案 1 :(得分:0)
感谢您的帮助!答案似乎比我想的要简单得多。将breaks = function(x) unique(floor(pretty(x)))
放入我的scale_x_continuous()
函数中会产生仅整数的中断,即使没有将数据转换为Date
格式也是如此。在我的情况下,删除unique()
不会改变行为,但在其他情况下可能会这样做。