R ggplot2线图线条与点颜色不一致问题求助(M/EPC类型异常)
问题解决:ggplot2线图线条与点颜色不一致
你的问题出在同一个Cell.ID对应了多个不同的Cell.type:
- 点的颜色是按每个数据点的
Cell.type单独映射,所以显示正确; - 线条是按
Cell.ID分组绘制的,当同一个Cell.ID的点属于不同Cell.type时,ggplot无法为这条线确定单一的颜色映射,导致线条颜色异常。
解决步骤:
- 检查数据一致性
运行以下代码,查看是否存在同一个Cell.ID对应多个Cell.type的情况:
# 查看每个Cell.ID对应的Cell.type分布 table(myrYFP_18.7_ABA_2_reordered$Cell.ID, myrYFP_18.7_ABA_2_reordered$Cell.type)
修正数据
如果发现存在跨Cell.type的Cell.ID,需要确认每个Cell.ID的正确细胞类型,将同一Cell.ID对应的所有行的Cell.type统一为同一个值。优化代码(可选)
代码中scale_fill_discrete(name="Cell type")是多余的(你没有用到fill美学),可以删掉,同时直接在scale_colour_manual里设置图例名称,让代码更清晰:
myrYFP_18.7_ABA_volume_change_plot <- ggplot(data=myrYFP_18.7_ABA_2_reordered, aes(x=Time, y=Percentage.volume.change, group=Cell.ID)) + geom_point(aes(colour=Cell.type)) + geom_line(aes(colour=Cell.type)) + scale_colour_manual(name="Cell type", values=cbPalette) + ylim(-40, 20) + xlim(0,120)
这样处理后,线条和点的颜色就能和图例中的细胞类型保持一致了。
内容的提问来源于stack exchange,提问作者Jodie
相关产品推荐
相关产品推荐

