ggplot 减少图例中的线宽
ggplot reduce line weight in legend
我正在尝试使用 ggplot2 控制绘图
示例脚本:
dat1 <- data.frame(
sex = factor(c("Female","Female","Male","Male")),
time = factor(c("Lunch","Dinner","Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(13.53, 16.81, 16.24, 17.42)
)
p = ggplot(data=dat1, aes(x=sex, y=total_bill, group=time, shape=time, color=time)) + geom_line() + geom_point()
现在我想控制图形和线条在图例中的样子。我想要一个更大的形状,并在传说中细线。但是我不能两者都执行。
如果我这样做,
p = p + guides(colour = guide_legend(override.aes = list(size=5)))
线条和形状都很粗,类似于图B
如果我这样做,
p = p + guides(colour = guide_legend(override.aes = list(size=5,linetype=0)))
然后形状以正确的大小出现,但线条消失了(图 A)。我试过类似的东西,但没有成功。
p = p + guides(colour = guide_legend(override.aes = list(size=5,linetype=0.5)))
如何实现图例中的大形状细线?
谢谢Sandy Muspratt and user20650。 link 都非常有用。
为了简单起见,我使用了 user20650 的代码。
完整代码在这里:
dat1 <- data.frame(
sex = factor(c("Female","Female","Male","Male")),
time = factor(c("Lunch","Dinner","Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(13.53, 16.81, 16.24, 17.42)
)
p = ggplot(data=dat1, aes(x=sex, y=total_bill, group=time, shape=time, color=time))
p = p + geom_line() + geom_point(size=5, alpha=0) + geom_point(show.legend=FALSE)
p = p + guides(colour = guide_legend(override.aes = list(alpha=1)))
谢谢。
我正在尝试使用 ggplot2 控制绘图
示例脚本:
dat1 <- data.frame(
sex = factor(c("Female","Female","Male","Male")),
time = factor(c("Lunch","Dinner","Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(13.53, 16.81, 16.24, 17.42)
)
p = ggplot(data=dat1, aes(x=sex, y=total_bill, group=time, shape=time, color=time)) + geom_line() + geom_point()
现在我想控制图形和线条在图例中的样子。我想要一个更大的形状,并在传说中细线。但是我不能两者都执行。
如果我这样做,
p = p + guides(colour = guide_legend(override.aes = list(size=5)))
线条和形状都很粗,类似于图B
如果我这样做,
p = p + guides(colour = guide_legend(override.aes = list(size=5,linetype=0)))
然后形状以正确的大小出现,但线条消失了(图 A)。我试过类似的东西,但没有成功。
p = p + guides(colour = guide_legend(override.aes = list(size=5,linetype=0.5)))
如何实现图例中的大形状细线?
谢谢Sandy Muspratt and user20650。 link 都非常有用。
为了简单起见,我使用了 user20650 的代码。
完整代码在这里:
dat1 <- data.frame(
sex = factor(c("Female","Female","Male","Male")),
time = factor(c("Lunch","Dinner","Lunch","Dinner"), levels=c("Lunch","Dinner")),
total_bill = c(13.53, 16.81, 16.24, 17.42)
)
p = ggplot(data=dat1, aes(x=sex, y=total_bill, group=time, shape=time, color=time))
p = p + geom_line() + geom_point(size=5, alpha=0) + geom_point(show.legend=FALSE)
p = p + guides(colour = guide_legend(override.aes = list(alpha=1)))
谢谢。