当 x 轴上的值不均匀时绘制实线
Plot solid lines when you have uneven values in the x axis
我试图使用 ggplot
绘制一条线,但因为 x 值(天)甚至没有间隔,所以我没有得到实线。我尝试使用 geom_smooth()
而不是 geom_line()
,但我得到了具有置信区间的行。
我的数据是这样的:
#df
treatment day1 day2 day4 day6 day9
1 12,7 11,1 8,7 7,4 5,9
2 13,4 11,3 8,6 6,9 5,3
3 11,3 10,5 8,9 7,6 6,2
是否有任何其他几何表达式或方式来排列数据以绘制实线?
提前致谢
我不确定你到底想要什么,但它可能类似于以下内容:
library(tidyverse)
data <- tibble(treatment = 1:3,
day1 = c(12.7, 13.4, 11.3),
day2 = c(11.1, 11.3, 10.5),
day4 = c(8.7, 8.6, 8.9),
day6 = c(7.4, 6.9, 7.6),
day9 = c(5.9, 5.3 ,6.2))
data %>%
pivot_longer(-treatment, names_to = "days", names_prefix = "day") %>%
mutate(days = as.integer(days),
treatment = as.character(treatment)) %>%
ggplot(aes(days, value, color = treatment)) +
geom_line()
如果不是这种情况,那么如果您指定希望获得的图形(x 和 y 变量)和您拥有的代码会有所帮助 运行。
您可以使用 reshape2
包和基本图形中的 melt
。
d1 <- reshape2::melt(d0, id=1, variable.name = "day") |>
transform(day=as.numeric(gsub('day', '', day)))
plot(value ~ day, d1, type='n', main='My Plot')
by(d1, d1$treatment, \(x) lines(value ~ day, x, col=x[1, 1] + 1))
legend('topright', legend=1:3, title='Treatment', lty=1, col=2:4, cex=.8)
数据
d0 <- read.table(header=T, text='treatment day1 day2 day4 day6 day9
1 12,7 11,1 8,7 7,4 5,9
2 13,4 11,3 8,6 6,9 5,3
3 11,3 10,5 8,9 7,6 6,2', dec=',')
我试图使用 ggplot
绘制一条线,但因为 x 值(天)甚至没有间隔,所以我没有得到实线。我尝试使用 geom_smooth()
而不是 geom_line()
,但我得到了具有置信区间的行。
我的数据是这样的:
#df
treatment day1 day2 day4 day6 day9
1 12,7 11,1 8,7 7,4 5,9
2 13,4 11,3 8,6 6,9 5,3
3 11,3 10,5 8,9 7,6 6,2
是否有任何其他几何表达式或方式来排列数据以绘制实线? 提前致谢
我不确定你到底想要什么,但它可能类似于以下内容:
library(tidyverse)
data <- tibble(treatment = 1:3,
day1 = c(12.7, 13.4, 11.3),
day2 = c(11.1, 11.3, 10.5),
day4 = c(8.7, 8.6, 8.9),
day6 = c(7.4, 6.9, 7.6),
day9 = c(5.9, 5.3 ,6.2))
data %>%
pivot_longer(-treatment, names_to = "days", names_prefix = "day") %>%
mutate(days = as.integer(days),
treatment = as.character(treatment)) %>%
ggplot(aes(days, value, color = treatment)) +
geom_line()
如果不是这种情况,那么如果您指定希望获得的图形(x 和 y 变量)和您拥有的代码会有所帮助 运行。
您可以使用 reshape2
包和基本图形中的 melt
。
d1 <- reshape2::melt(d0, id=1, variable.name = "day") |>
transform(day=as.numeric(gsub('day', '', day)))
plot(value ~ day, d1, type='n', main='My Plot')
by(d1, d1$treatment, \(x) lines(value ~ day, x, col=x[1, 1] + 1))
legend('topright', legend=1:3, title='Treatment', lty=1, col=2:4, cex=.8)
数据
d0 <- read.table(header=T, text='treatment day1 day2 day4 day6 day9
1 12,7 11,1 8,7 7,4 5,9
2 13,4 11,3 8,6 6,9 5,3
3 11,3 10,5 8,9 7,6 6,2', dec=',')