我正在尝试使用ggplot绘制多行(按年分类)以获取分类变量的均值。我很沮丧,尝试过各种方法,但不能完全得到我想要的。我有原始观测值,每个观测值上都带有年份标志,并附加了损失值,但这是我试图按年/司法方向对平均损失进行分组的快照。
我想按分类变量级别汇总所有损失值,然后按年份进一步汇总这些损失值
我的目标是:
我想要一个图,该图具有取决于变量的可变数量的级别(对于JudicialOrientation,我有3个级别:防御,中性,原告),所以这些将是x值,然后我想有一个连接均值的折线图在每三个级别之间,但我想要代表2006、2007、2008等的多行。
因此,对于该特定级别,我将使用不同的彩色线来表示不同年份的MeanLoss值。我希望这是有道理的。
我是ggplot的新手,我看到有些人使用一行,而另一些人使用多行。两种方法都可以。
到目前为止的尝试:
ggplot() +geom_line(data=df1, aes(x=JudicialOrientation, y = MeanLoss, color=Year))
带有一些dplyr代码以获取聚合均值的示例数据帧:
df <-data.frame(Year=c("2006","2006","2006","2007","2007","2007","2008","2009","2010","2010","2009","2009"),
JudicialOrientation=c("Defense","Plaintiff","Plaintiff","Neutral","Defense","Plaintiff","Defense","Plaintiff","Neutral","Neutral","Plaintiff","Defense"),
Loss = c(100000,100,2500,100000,25000,0,7500,5200, 900,100,0,50)
)
df1 <- df%>% group_by(Year,JudicialOrientation) %>% summarise(MeanLoss =mean(Loss))
让我知道您可能有的任何提示。谢谢!
答案 0 :(得分:1)
我想您在运行代码后看到了消息。
geom_path:每个组仅包含一个观察值。您需要调整小组的审美吗?
因此,调整小组的审美观念会为您提供
ggplot(data = df1, aes(x = JudicialOrientation, y = MeanLoss, color=Year, group = Year)) +
geom_line() +
geom_point()
我添加了geom_point
,因此您看到了例如实际上是2008年。您不会仅凭geom_line
看到它们。希望这可以帮助。
您甚至可以让stat_summary
为您进行汇总,然后直接使用df
。
这里是
ggplot(df, aes(x = JudicialOrientation, y = Loss, color = Year, group = Year)) +
stat_summary(geom = "line", fun.y = mean) +
stat_summary(geom = "point", fun.y = mean)