在 ggplot2 中添加图例
Adding a Legend in ggplot2
我有以下代码。
Financial_Wealth.lq,Financial_Wealth.uq,Total_Wealth.lq,Total_Wealth.uq,time=seq(0,(sPar.dNN),1))
ggplot(data, aes(x=time)) +
geom_line(aes(y = Human_Capital.mean), color="red", size=1) +
geom_line(aes(y = Financial_Wealth.mean), color="goldenrod3", size=1) +
geom_ribbon(aes(ymin=Financial_Wealth.lq, ymax = Financial_Wealth.uq), alpha=0.4, fill="goldenrod3") +
geom_line(aes(y = Total_Wealth.mean), color="dodgerblue", size=1)+
geom_ribbon(aes(ymin=Total_Wealth.lq, ymax=Total_Wealth.uq), alpha=0.4, fill = "dodgerblue") +
scale_x_continuous(name = 'Age',
breaks=(c(seq(0,(sPar.dNN),4))))+
scale_y_continuous(name = 'Wealth Level',
breaks = seq(0,100,10))+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
legend.title = element_text(size=12, face="bold"),
legend.text = element_text(size=12),
axis.title = element_text(size=12),
axis.text = element_text(size=10)) +
coord_cartesian(xlim = c(0,45), ylim = c(0,100), expand = TRUE)+
scale_fill_manual(name="Median",values=c("goldenrod3", "red","dodgerblue"),
labels = c("Financial Wealth", "Human Capital", "Total Wealth"))+
ggtitle('Optimal Wealth Development')
您可以将每个数据输入解释为等长数字向量。有人可以告诉我为什么传说没有出现吗?我需要做什么不同的事情!提前致谢 :) 我附上了它正在生成的 image,这样您就可以了解我想要实现的目标。
为了添加图例,您需要在 aes()
中指定其中一种美学。在这种情况下,接受所有 geom_line()
调用并将每个调用放在 aes()
中的 color=
。 aes()
中分配给 color=
的值将是图例中标签的文本:不是颜色。要分配颜色,您需要添加 scale_color_manual()
并设置 values=
命名矢量。
请参阅下文了解应该可以解决您的问题的以下更改,但在没有您的数据集或 reprex 的情况下,我无法测试新代码的功能。
# original code
... +
geom_line(aes(y = Human_Capital.mean), color="red", size=1) +
geom_line(aes(y = Financial_Wealth.mean), color="goldenrod3", size=1) +
geom_line(aes(y = Total_Wealth.mean), color="dodgerblue", size=1)+
# new plot code
... +
geom_line(aes(y = Human_Capital.mean, color="Human Capital Mean"), size=1) +
geom_line(aes(y = Financial_Wealth.mean, color="Financial Wealth Mean"), size=1) +
geom_line(aes(y = Total_Wealth.mean, color="Total Wealth Mean"), size=1) +
scale_color_manual(values=c(
"Human Capital Mean"="red",
"Financial Wealth Mean"="goldenrod3",
"Total Wealth Mean"="dodgerblue"))
我有以下代码。
Financial_Wealth.lq,Financial_Wealth.uq,Total_Wealth.lq,Total_Wealth.uq,time=seq(0,(sPar.dNN),1))
ggplot(data, aes(x=time)) +
geom_line(aes(y = Human_Capital.mean), color="red", size=1) +
geom_line(aes(y = Financial_Wealth.mean), color="goldenrod3", size=1) +
geom_ribbon(aes(ymin=Financial_Wealth.lq, ymax = Financial_Wealth.uq), alpha=0.4, fill="goldenrod3") +
geom_line(aes(y = Total_Wealth.mean), color="dodgerblue", size=1)+
geom_ribbon(aes(ymin=Total_Wealth.lq, ymax=Total_Wealth.uq), alpha=0.4, fill = "dodgerblue") +
scale_x_continuous(name = 'Age',
breaks=(c(seq(0,(sPar.dNN),4))))+
scale_y_continuous(name = 'Wealth Level',
breaks = seq(0,100,10))+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
legend.title = element_text(size=12, face="bold"),
legend.text = element_text(size=12),
axis.title = element_text(size=12),
axis.text = element_text(size=10)) +
coord_cartesian(xlim = c(0,45), ylim = c(0,100), expand = TRUE)+
scale_fill_manual(name="Median",values=c("goldenrod3", "red","dodgerblue"),
labels = c("Financial Wealth", "Human Capital", "Total Wealth"))+
ggtitle('Optimal Wealth Development')
您可以将每个数据输入解释为等长数字向量。有人可以告诉我为什么传说没有出现吗?我需要做什么不同的事情!提前致谢 :) 我附上了它正在生成的 image,这样您就可以了解我想要实现的目标。
为了添加图例,您需要在 aes()
中指定其中一种美学。在这种情况下,接受所有 geom_line()
调用并将每个调用放在 aes()
中的 color=
。 aes()
中分配给 color=
的值将是图例中标签的文本:不是颜色。要分配颜色,您需要添加 scale_color_manual()
并设置 values=
命名矢量。
请参阅下文了解应该可以解决您的问题的以下更改,但在没有您的数据集或 reprex 的情况下,我无法测试新代码的功能。
# original code
... +
geom_line(aes(y = Human_Capital.mean), color="red", size=1) +
geom_line(aes(y = Financial_Wealth.mean), color="goldenrod3", size=1) +
geom_line(aes(y = Total_Wealth.mean), color="dodgerblue", size=1)+
# new plot code
... +
geom_line(aes(y = Human_Capital.mean, color="Human Capital Mean"), size=1) +
geom_line(aes(y = Financial_Wealth.mean, color="Financial Wealth Mean"), size=1) +
geom_line(aes(y = Total_Wealth.mean, color="Total Wealth Mean"), size=1) +
scale_color_manual(values=c(
"Human Capital Mean"="red",
"Financial Wealth Mean"="goldenrod3",
"Total Wealth Mean"="dodgerblue"))