我正在尝试创建具有多个变量的折线图。
首先,我的数据如下所示:https://figshare.com/s/d42f7f6d348aecac3f00
我称这个为“ coverage_data”。
首先,我创建我的data.frame:
data_long <- gather(coverage_data, key = "variable", value = "value", -one_of("SLOV_position", "Segment"))
data_long中变量的顺序为S1,S2,S3,S4,S5和C100。
然后我将其绘制:
ggplot(data=data_long, aes(x=SLOV_position, y=value, colour=variable)) +
xlab("UMAV genome position") +
ylab("Read depth (log scale)") +
scale_y_continuous(trans='log10', labels = comma) +
ggtitle("Segment") +
theme_classic(base_size = 12) +
geom_line(size=1) +
scale_x_continuous(breaks = scales::pretty_breaks(n = 3), labels = comma) +
theme(plot.title = element_text(size = 12, hjust = 0.5), axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5, size = 8), axis.title.x = element_text(margin = margin(t = 10))) +
facet_grid(~ Segment, scales="free")
哪一个效果很好,并按照以下方式绘制我的数据:
但是,ggplot将变量排序为C100,S1,S2,S3,S4和S5。为什么将C100放在首位?怎样才能按原始顺序显示变量?
我看过很多类似问题的答案,但似乎没有一个对我正在做的事情有用。例如,许多建议使用手动方式对变量重新排序,但是当我在data_long中查找变量时,它们的顺序正确。另外,它们太多了,因为data_long有数百行,所以我不确定如何手动执行这样的操作。
很抱歉,如果这是一个以前已经回答过的非常明显的问题,但是无论我看多少个答案,我似乎都无法弄清楚。非常感谢您的帮助。
答案 0 :(得分:0)
将当前变量$ sudo ./awscli-bundle/install -i /user/local/aws -b /bin/aws
从variable
更改为charactor
为:
factor
然后,运行您的data_long$variable <- factor(data_long$variable, levels = c("S1", "S2", "S3", "S4", "S5", "C100"))
。