首页 > 解决方案 > 如何在ggplot2中手动更改线型

问题描述

我想在 ggplot 的交互图中手动更改几行的线型。本质上,x = 连续 y = 连续,主持人 = 分类(5 个级别)。

我已经使用 scale_linetype_manual 参数指定了所需的线型,但无论出于何种原因,线型都没有改变。我能够成功更改线条颜色但不能更改线型。

ggplot(data=subset(study6, !is.na(condition_control)), aes(x=attitude, y=support, color=condition_control)) + 
  stat_smooth(method="lm", se = FALSE) + 
  labs(x ="Initial attitudes", y = "Policy support") +
  guides(color=guide_legend(title="Condition")) +
  scale_linetype_manual(values=c("solid", "dashed", "solid", "dashed", "solid")) + 
  scale_color_manual(values=c("red", "gray70", "gray70", "black", "black")) +
  theme_bw()

也许问题与分类调节变量(condition_control)有关?您对此事的任何建议将不胜感激。

标签: rggplot2

解决方案


对于可能遇到此问题的其他人,我想通了!

您必须在 aes 函数中将主持人指定为颜色和线型。(注意:这将为您提供两个不同的图例,因此您必须确保为每个图例赋予相同的标题才能将它们折叠成一个图例。)

ggplot(data=subset(study6, !is.na(condition_control)), aes(x=attitude, y=support, color=condition_control, linetype = condition_control)) + 
  stat_smooth(method="lm", se = FALSE) + 
  labs(x ="Initial attitudes", y = "Policy support") +
  guides(color=guide_legend(title="Condition")) +
  scale_linetype_manual("Condition", values=c("solid", "twodash", "solid", "twodash", "solid")) +
  scale_color_manual("Condition", values=c("red", "gray70", "gray70", "black", "black")) +
  theme_bw()

推荐阅读