如何在ggplot2中手动更改线型

时间:2019-03-28 21:03:19

标签: r 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)有关?您对此事有任何建议,将不胜感激。

1 个答案:

答案 0 :(得分:0)

对于其他可能遇到此问题的人,我已经弄清楚了!

您必须在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()