You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何反转ggplot2折线图绘制顺序避免底层线条被遮盖

解决ggplot2折线图绘制顺序反转问题

你可以通过两种方法反转线条的绘制顺序,让Sim值较小的蓝色线条显示在红色线条之上:

方法一:在aes中指定绘制顺序

直接在ggplot的美学映射里添加order = desc(Sim),让Sim值大的线条先绘制,小的后绘制:

library(ggplot2)

dp_no_sim_comparison_internal <- read.table("/home/agalvez/data/sims/final_output/internal_nodes/internal_dollop_final_output.csv", sep = "\t", header=TRUE)

dp_no_sim_comparison_internal$Node <- as.factor(dp_no_sim_comparison_internal$Node)

lineplot6 <- ggplot(dp_no_sim_comparison_internal, aes(x = Node, y = Present, group = Sim, colour = Sim, order = desc(Sim))) +
  geom_line(alpha=0.1)  +
  xlab("Node ID") + ylab("Gene count") + ggtitle("Dollop") + labs(colour='Simulation') +
  theme_minimal() +
  theme(axis.text.x = element_blank()) +
  theme(plot.title = element_text(face = "bold")) +
  scale_color_gradient(low = "darkturquoise", high = "brown2")

lineplot6

方法二:反转数据框的行顺序

ggplot默认按照数据框的行顺序绘制图层,把数据按Sim降序排列,让大Sim值的记录排在前面:

library(ggplot2)

dp_no_sim_comparison_internal <- read.table("/home/agalvez/data/sims/final_output/internal_nodes/internal_dollop_final_output.csv", sep = "\t", header=TRUE)

dp_no_sim_comparison_internal$Node <- as.factor(dp_no_sim_comparison_internal$Node)
# 按Sim降序排序数据
dp_no_sim_comparison_internal <- dp_no_sim_comparison_internal[order(-dp_no_sim_comparison_internal$Sim), ]

lineplot6 <- ggplot(dp_no_sim_comparison_internal, aes(x = Node, y = Present, group = Sim, colour = Sim)) +
  geom_line(alpha=0.1)  +
  xlab("Node ID") + ylab("Gene count") + ggtitle("Dollop") + labs(colour='Simulation') +
  theme_minimal() +
  theme(axis.text.x = element_blank()) +
  theme(plot.title = element_text(face = "bold")) +
  scale_color_gradient(low = "darkturquoise", high = "brown2")

lineplot6

原理说明

ggplot的图层绘制遵循"先画的在底层,后画的在顶层"的规则,以上两种方法都是让Sim值较大的红色线条先绘制(底层),Sim值较小的蓝色线条后绘制(顶层),从而避免蓝色线条被遮盖。

内容的提问来源于stack exchange,提问作者Alex galvez morante

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 06:01:00