Я работал над блестящим приложением, и я не могу понять, как обеспечить, чтобы размер окна не вызывал изменения в остальной части программы, что вызывает очевидные ошибки, как вы можете видеть здесь : https://imgur.com/a/bwdkdow. По крайней мере, я бы хотел, чтобы он был квадратным, и было бы лучше, если бы был способ гарантировать, что он просто имел фиксированный размер, но при этом мог бы работать на мониторах разных размеров функционально.
код:
output$graph <- renderPlot({
req(input$album_link)
album <- get_album(str_split_fixed(input$album_link, "\\/", 5)[[5]])
track_names <- album[["tracks"]][["items"]][["name"]]
track_length <- album[["tracks"]][["items"]][["duration_ms"]]
max_track <- max(track_length)
track_length <- max_track -track_length
album_df <- data.frame("track_length" = track_length, "track_names" = track_names)
album_cover <- image_read(album[["images"]][["url"]][1])
ggplot(data=album_df, aes(x=factor(track_names, track_names), y=-1 * track_length)) +
ggtitle("Songs vs length")+
annotation_custom(rasterGrob(album_cover,
width = unit(1,"npc"),
height = unit(1,"npc")),
-Inf, Inf, -Inf, Inf)+
geom_bar(stat="identity", position = "identity", color = 'NA', alpha = 0.9, width = 1, fill = 'white') +
scale_y_continuous(expand = c(0, 0), limits = c(-1 * max_track, 0)) +
scale_x_discrete(expand = c(0, 0)) +
theme(axis.title.x=element_blank(),
axis.title.y=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank()
) +
coord_flip()