用R中的33个用户ID的线制作具有不同表达的特定X + Y值的线图

v1l68za4  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(91)

我试着把活动日期放在X轴上,卡路里放在Y轴上,这与33个不同的用户每天燃烧卡路里的范围有关。正如你所看到的,我对ggplot和可视化是新手,所以我希望我能理解最基本的解决方案。非常感谢。
我真的尝试了这段代码的几次迭代,每一次都不太适合可视化结果。以下是我的一些想法:

首先:install.packages("tidyverse") install.packages("here") library(tidyverse) library(here)

尝试1条形图

ggplot(data=trimmed_dactivity) + geom_bar(mapping=aes(x=Id, color=ActivityDate))
Attempt 1 Bar Graph ##对利益相关者来说可能不是最好的,但是如果我能让这些条靠得更近一点,可能会有所帮助,所以我尝试标识唯一ID。它们之所以这么小,可能是因为它们以长数字格式出现,并且不是连续的,所以可能是添加了额外的空间,并由于空序列号的空间而使这些条这么小。

尝试2条形图

UId <- unique("Id") ggplot(data=trimmed_dactivity) + geom_bar(mapping=aes(x=UId, color=ActivityDate))
Attempt 2 Bar Graph ##Facepalm,绝对不是我想要的,但那是我解决上述问题的努力。

尝试3条形图

ggplot(data=trimmed_dactivity) + geom_bar(mapping=aes(x=ActivityDate, fill=Id)) + theme(axis.text.x = element_text(angle=45))
Attempt 3 Bar Graph ##fill函数不起作用,在y轴上,我不知道“count”在本例中指的是什么,所以除了这两个问题之外,它可能很有用。

最后,我切换到折线图

尝试4线图

ggplot(data=trimmed_dactivity) + geom_line(mapping=aes(x=ActivityDate, y=Calories)) + theme(axis.text.x = element_text(angle=45))
Attempt 4 Line Graph ##现在我得到的是向上和向下的独立线,我想要的是33条独立线,代表唯一的ID号,沿着x轴移动代表时间,沿着y轴上升代表卡路里。当然,我不知道如何做到这一点...
有没有人能帮我弥补我在旅途中错过的东西?

0pizxfdo

0pizxfdo1#

我想要的是33行代表唯一身份证号码的独立线。
听起来你需要一个意大利面图,要创建一个意大利面图,将IdMap到color(或者如果你不想每个id的颜色不同,Map到group)。

library(ggplot2)

ggplot(fakedata, aes(ActivityDate, Calories)) +
  geom_line(aes(color = factor(Id)), show.legend = FALSE)

  • 示例数据:*
set.seed(13)

fakedata <- expand.grid(
  Id = 1:33,
  ActivityDate = seq(as.Date("2016-04-13"), length.out = 10, by = "day")
)

fakedata$Calories <- round(rnorm(330, 2500, 500))

相关问题