R语言 自动命名ggplot

gk7wooem  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(119)

首先,我对r中的数据科学/分析还很陌生,所以请耐心等待!我一直在摆弄我通过datacamp获得的视频游戏销售(vgsales)数据集,并在学习ggplot、dplyr等的同时对它进行一些分析。
我创建了一个图表,随机选择一款视频游戏,并以条形图的形式显示该视频游戏在不同地区和平台的销售情况(见下面的截图)。Season One“(在这个例子中)打印在我的控制台中,但是我真的希望它被放置在图形的顶部。我如何改变我的代码,使随机选择的游戏的标题被用作情节的标题?注意,使用ggtitle(paste(random_name(vgsales 3))将只会放置一个不同的随机名称,它与可视化的数据不对应。typical output of my code
随机游戏由以下函数选择:

random_name <- function(vgsales) {
    random_name <- sample(vgsales$Name, 1)
    print(random_name)
    }

该图由以下代码生成:

ggplot(vgsales3 %>%
         filter(region != "Global_Sales",
                Name == random_name(vgsales3)),
       aes(Platform, value, fill = region)) +
      geom_col() +
      labs(y = "Sales")
qacovj5a

qacovj5a1#

有一些选项可以完成您的任务:为了让它靠近你的方法,我们可以这样做:
这里我们使用示例mtcars数据集,名称selected_name被传递给ggplot。技巧是在使用selected_game <- random_name(mtcars)写入控制台和在ggplot中使用之间进行中间操作:

library(tidyverse)
random_name <- function(mtcars) {
  selected_name <- sample(mtcars$cyl, 1)
  print(selected_name)
  return(selected_name)
}

selected_game <- random_name(mtcars)

ggplot(mtcars %>%
         filter(am != 0,
                cyl == selected_game),
       aes(factor(gear), mpg, fill = hp)) +
  geom_col() +
  labs(y = "Sales") +
  ggtitle(selected_game)

相关问题