gpt4 book ai didi

R 折线图 - 删除与数据无关的令人烦恼的零线

转载 作者:行者123 更新时间:2023-12-01 02:13:46 27 4
gpt4 key购买 nike

我有一个简单(但非常大)的数据集,其中包含从 4 月到 8 月在不同站点进行的计数。
在 4 月中旬和 7 月之间,没有零计数 - 但零线从最早到最晚的日期延伸。

enter image description here

以下是用于制作上述图表的部分数据(列是 - Site.ID、DATE、Visible Number):

data=structure(list(Site.ID = c(302L, 302L, 302L, 302L, 302L, 302L, 302L, 302L, 302L, 302L, 302L, 302L, 304L, 304L, 304L, 304L, 304L, 304L, 304L, 304L, 304L, 304L, 304L, 304L), DATE = structure(c(1L, 2L, 5L, 3L, 4L, 6L, 8L, 7L, 9L, 10L, 11L, 12L, 1L, 2L, 5L, 3L, 4L, 6L, 8L, 7L, 9L, 10L, 11L, 12L), .Label = c("3/21/2014", "3/27/2014", "4/17/2014", "4/28/2014", "4/8/2014", "5/13/2014", "6/17/2014", "6/6/2014", "7/10/2014", "7/22/2014", "7/29/2014", "8/5/2014" ), class = "factor"), Visible.Number = c(0L, 0L, 5L, 14L, 20L, 21L, 6L, 8L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 7L, 7L, 7L, 7L, 5L, 0L, 0L, 0L, 0L)), .Names = c("Site.ID", "DATE", "Visible.Number" ), class = "data.frame", row.names = c(NA, -24L))


attach(data)
DATE<-as.Date(DATE,"%m/%d/%Y")
plot(data$Visible.Number~DATE, type="l", ylab="Visible Number")

我有两个网站,但有三行。如何让 R 不沿零绘制一条线?
感谢您的帮助!

最佳答案

您的问题在于多个站点 ID。它绘制第一个,然后返回(画一条线)绘制第二个。本质上,基本图试图在不“举笔”的情况下绘制所有线条。使用基础绘图,您可以选择使用 lines 单独绘图。 ,也许在 for环形。我认为这样的事情用 ggplot2 更容易

library(ggplot2)
ggplot(data, aes(x = DATE, y = Visible.Number, group = Site.ID)) + geom_line()

# if you prefer more base-like styling
ggplot(data, aes(x = DATE, y = Visible.Number, group = Site.ID)) +
geom_line() +
theme_bw()

在基地:
plot(data$DATE, data$Visible.Number, type = "n",
ylab = "Visible Number", xlab = "Date")

for(site in unique(data$Site.ID)) {
with(subset(data, Site.ID == site),
lines(Visible.Number ~ DATE)
)
}

注意我没有 attach我的数据和你一样,所以我不知道如果你这样做的话,基础解决方案中的子集是否适合你 attach .一般来说,避免 attach ; with是一种无需附加即可节省输入的好方法,并且“风险”要小得多,因为它不会将您的数据列复制到孤立的向量中,从而使您在子集化或以其他方式处理数据时更难以跟踪它们。

关于R 折线图 - 删除与数据无关的令人烦恼的零线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26920657/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com