如何解决如何通过多个变量创建日趋势散点图
我正在尝试通过跟踪几个变量来创建散点图。我想知道如何通过跟踪状态来显示日趋势。请让我知道需要提供什么。非常感谢你! 数据如下所示。
State Day1 Day2 Day3 Day4
CA 1 5 7 9
NY 10 8 20 90
VT 4 6 9 10
解决方法
基础 R
使用 matplot
一次获取所有行。但是数据必须转置,R使用列优先顺序。
matplot(t(df1[-1]),type = "l",lty = 1)
legend("topleft",legend = df1$State,col = 1:3,lty = 1)
包ggplot2
对于包 ggplot2
,这类问题通常与数据整形有关。格式应该是长格式,数据是宽格式。请参阅this post,了解如何将数据从宽格式重新调整为长格式。
library(ggplot2)
df1 |>
tidyr::pivot_longer(-State,names_to = "Day") |>
dplyr::mutate(Day = as.integer(sub("[^[:digit:]]+","",Day))) |>
ggplot(aes(Day,value,color = State)) +
geom_line()
数据
df1 <- read.table(text = "
State Day1 Day2 Day3 Day4
CA 1 5 7 9
NY 10 8 20 90
VT 4 6 9 10
",header = TRUE)
,
在 Stata 中,您需要一个 long
布局才能正常工作——就像在 R 中的 ggplot2
一样。在类似
clear
input str2 State Day1 Day2 Day3 Day4
CA 1 5 7 9
NY 10 8 20 90
VT 4 6 9 10
end
reshape long Day,i(State) j(Time)
rename Day Whatever
encode State,gen(Where)
xtset Where Time
您可以查看 tsline
和 xtline
。但是:如果您的真实数据是美国的 50 个州(加上 DC?波多黎各?关岛???),那么您的数据定义了 50?+ 条线,可能需要一些策略。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。