我想在R中为这个数据集绘制多条线:(x =年,y =值)
School_ID Year Value
A 1998 5
B 1998 10
C 1999 15
A 2000 7
B 2005 15
Run Code Online (Sandbox Code Playgroud)
每所学校都有不同年份的数据.我希望每所学校都有一行.
我有下表,但经过多次尝试无法绘制数据,以便 x 轴刻度线与year. 我找到了箱线图的解决方案,但不适用于geom_line()
我怎样才能制作一年的离散标签?
以下解决方案不起作用
g + scale_x_discrete(limits=c("2013","2014","2015"))
g + scale_x_discrete(labels=c("2013","2014","2015"))
Run Code Online (Sandbox Code Playgroud)
distance_of_moves 距离移动年 1 2.914961 2013 2 2.437516 2014 3 2.542500 2015
ggplot(data = distance_of_moves, aes(x = year, y = `distancemoved`, group = 1)) +
geom_line(color = "red", linetype = "dashed", size = 1.5) +
geom_point(color = "red", size = 4, shape = 21, fill = "white") +
ylab("平均移动距离") +
xlab("年")
我有data.frame时间序列.其中NA还有一个因素,我想用它来突出显示一行的不同部分.
flow.mndnr <- function(id, start, end) {
uri <- sprintf("http://maps1.dnr.state.mn.us/cgi-bin/csg.pl?mode=dump_hydro_data_as_csv&site=%s&startdate=%s&enddate=%s", id, start, end)
dat <- read.csv(url(uri), colClasses=c(Timestamp="Date"))
rng <- range(dat$Timestamp)
d <- data.frame(Timestamp=seq(rng[1], rng[2], by='day'))
merge(d, dat, all.x=TRUE)
}
dat <- flow.mndnr("28062001", as.Date("2002-04-02"), as.Date("2011-10-05"))
Run Code Online (Sandbox Code Playgroud)
我可以无条件地绘制它
library(lattice)
xyplot(Discharge..cfs. ~ Timestamp, dat, type='l', cex=0.5, auto.key=TRUE)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试引入因素时,我无法摆脱连接线
xyplot(Discharge..cfs. ~ Timestamp, dat, type='l',
groups=dat$Discharge..cfs..Quality, cex=0.5, auto.key=TRUE)
Run Code Online (Sandbox Code Playgroud)

与ggplot2相同
dat$quality <- dat$Discharge..cfs..Quality
ggplot(dat, aes(x=Timestamp, y=Discharge..cfs.)) +
geom_path(aes(colour=quality)) + theme(legend.position='bottom')
Run Code Online (Sandbox Code Playgroud)

我试过geom_line没有成功.我读了ggplot2邮件存档,这geom_path是要走的路.但它对我来说并不适用.
PS为什么ggplot2不喜欢名字中的点,所以我不得不使用另一个?
我正在尝试绘制一些时间连续的数据。我应用了一个简单的算法,state为数据的每一行分配一个离散数字 ( )。它看起来像这样。
time flow pre state
0.0 0.0 3 1
0.2 0.01 4 1
0.4 0.10 10 2
0.6 -0.11 -2 0 # Set as NA in the example below
Run Code Online (Sandbox Code Playgroud)
现在,我想绘制例如流量(使用ggplot)并state确定颜色。问题是,如果我这样做
ggplot(data) +
geom_line(aes(x = time, y = flow, color = state))
Run Code Online (Sandbox Code Playgroud)
该图的颜色对比度太小,无法轻松区分state。但如果我这样做
ggplot(data) +
geom_line(aes(x = time, y = flow, color = factor(state))) +
scale_color_manual(values = c("red", "green", "blue"))
Run Code Online (Sandbox Code Playgroud)
它将线分开,它们显示为三条不同的线。我想要的是使用连续比例,但添加一种或几种中间颜色以进行对比。目前的解决方案是这样的
ggplot(data = alg1) +
geom_line(aes(x = time, y = flow, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 r 创建简单的折线图,将数据点连接到受访者组的平均值(也可以用不同的颜色标记它们或区分它们等)我的数据是长格式的,并按如下所示排序(我如果有任何价值,也可以使用宽格式):
ID gender week class motivation
1 male 0 1 100
1 male 6 1 120
1 male 10 1 130
...
2 female 0 1 90
2 female 6 1 NA
2 female 10 1 117
...
3 male 0 2 89
3 male 6 2 112
3 male 10 2 NA
...
Run Code Online (Sandbox Code Playgroud)
基本上,每个受访者总共测量了n次,并且每个人的场合(周)都相同。一些受访者在一次或多次失踪。让我们说动机。性别、阶级和 ID 等变量不会改变,动机会。我尝试使用 ggplot2 获取折线图
## define base for the graphs and store in object 'p'
plot <- ggplot(data = DataRlong, aes(x = week, …Run Code Online (Sandbox Code Playgroud) 我想要一个线图,其中value绘制为expt每个级别一行的函数var:
这是我的数据:
lines <- "
expt,var,value
1,none.p,0.183065327746799
2,none.p,0.254234138384241
3,none.p,0.376477571234912
1,male.p,-1.58289835719949
2,male.p,-1.98591548366901
3,male.p,-2.02814824729229
1,neutral.p,-2.01490302054226
2,neutral.p,-1.88178562088577
3,neutral.p,-1.68089687641625
1,female.p,-3.27294304613848
2,female.p,-3.07711187982237
3,female.p,-2.89652562347054
1,both.p,-2.40011011312792
2,both.p,-2.24495598015741
3,both.p,-2.78501124223834"
con <- textConnection(lines)
data <- read.csv(con)
close(con)
Run Code Online (Sandbox Code Playgroud)
expt 是一个因素:
data$expt <- factor(data$expt)
Run Code Online (Sandbox Code Playgroud)
当我使用时,一切都按预期工作 geom_point
ggplot(data, aes(expt, value, colour=var)) + geom_point()
Run Code Online (Sandbox Code Playgroud)
但是当我用的时候 geom_line
ggplot(data, aes(expt, value, colour=var)) + geom_line()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息
geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?
Run Code Online (Sandbox Code Playgroud)
和一个空的情节.什么时候expt是数字,它可以工作,但我更喜欢使用因子,因为这给了我在x轴上的正确标签.这有什么问题?我发现它非常违反直觉,它适用于点,但不适用于线条.
我已经阅读了文档,我认为我的代码应该是正确的,但输出中的点之间仍然没有线.怎么了?
x'轴是离散的,y轴是连续的.
我的代码
point.sqrmPrice <- ggplot(overview.df, aes(x = areaSize, y = sqrmPrice)) +
geom_line() +
geom_point() +
scale_y_continuous(breaks = c(seq(min(overview.df$sqrmPrice), max(overview.df$sqrmPrice), by = 10000) )) +
theme_bw()
Run Code Online (Sandbox Code Playgroud)