gpt4 book ai didi

r - 如何将自定义系列标签添加到 R 的 ggplot 中的图例?

转载 作者:行者123 更新时间:2023-12-03 23:31:08 25 4
gpt4 key购买 nike

我有一个情节(粘贴在下面的示例代码),我试图通过自己的标签为系列信息添加。而不是绘制“p1s1”“p1s2”“p3s4”,我想要“治疗1”“治疗2”“治疗3”。我使用 levels(series_id) 来获取唯一的系列名称并使用查找表来获取描述。 (我认为这使它们按照绘制的顺序排列?)并且我将这些描述放在一个名为 treatment_descriptions 的向量中。

从文档中我认为我应该在这里使用秤,但我无法弄清楚是哪一个,或者如何去做。类似于: scale_something(name="Treatment Descriptions", break=NULL, labels=treatment_descriptions, formatter=NULL) ?但是这应该去哪里呢?

library(ggplot2)

# Create a long data.frame to store data...
growth_series = data.frame ("read_day" = c(0, 3, 9, 0, 3, 9, 0, 2, 8),
"series_id" = c("p1s1", "p1s1", "p1s1", "p1s2", "p1s2", "p1s2", "p3s4", "p3s4", "p3s4"),
"mean_od" = c(0.6, 0.9, 1.3, 0.3, 0.6, 1.0, 0.2, 0.5, 1.2),
"sd_od" = c(0.1, 0.2, 0.2, 0.1, 0.1, 0.3, 0.04, 0.1, 0.3),
"n_in_stat" = c(8, 8, 8, 8, 7, 5, 8, 7, 2)
)

> # Now gives us some example long form data...
> > growth_series
> read_day series_id mean_od sd_od n_in_stat
> 1 p1s1 0.6 0.10 8 2
> 3 p1s1 0.9 0.20 8 3
> 9 p1s1 1.3 0.20 8 4
> 0 p1s2 0.3 0.10 8 5
> 3 p1s2 0.6 0.10 7 6
> 9 p1s2 1.0 0.30 5 7
> 0 p3s4 0.2 0.04 8 8
> 2 p3s4 0.5 0.10 7 9
> 8 p3s4 1.2 0.30 2 2

# Plot using ggplot...
ggplot(data = growth_series, aes(x = read_day, y = mean_od, group = series_id, color = series_id)) +
geom_line(size = 1.5) +
geom_point(aes(size = n_in_stat)) +
geom_errorbar(aes(ymin = mean_od - sd_od, ymax = mean_od + sd_od), size = 1, width = 0.3) +
xlab("Days") + ylab("Log (O.D. 730 nm)") +
scale_y_log2() +
scale_colour_hue('my legend', breaks = levels(growth_series$series_id), labels=c('t1', 't2', 't3'))

最佳答案

也许你可以重新标记你的因素?

growth_series$series_id <- factor(
growth_series$series_id,
labels=c('treatment 1', 't2', 't3'))

或者如果你还在找scale_something,应该是scale_colour_hue()
... + scale_colour_hue('my legend', 
breaks = levels(growth_series$series_id),
labels=c('t1', 't2', 't3'))

关于r - 如何将自定义系列标签添加到 R 的 ggplot 中的图例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2339953/

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