R 有规格的绘图

R 有规格的绘图,r,ggplot2,R,Ggplot2,我的数据有许多组变量。 首先,我想用一条线按“等级”绘制“分数” data=data.frame("grade"=c(1, 2, 3, 1, 2, 3), "class"=c('a', 'a', 'a', 'b', 'b', 'b'), "size"=c(1, 1, 2, 2, 2, 1), "var"=c('q33', 'q35', 'q39', 'q33', 'q35', 'q39'),

我的数据有许多组变量。 首先,我想用一条线按“等级”绘制“分数”

data=data.frame("grade"=c(1, 2, 3, 1, 2, 3),
                "class"=c('a', 'a', 'a', 'b', 'b', 'b'),
                "size"=c(1, 1, 2, 2, 2, 1),
                "var"=c('q33', 'q35', 'q39', 'q33', 'q35', 'q39'),
                "score"=c(5, 8, 7, 3, 7, 5))
它给出了一个有趣的图表,因为我对不同的班级和大小重复了“等级”。 如果我取了数据的一个子集,那么图表看起来就正常了

library(reshape2, ggplot2)
ggplot(data, aes(x = grade, y = score)) + geom_line()

因此,我想知道,如果没有以某种方式将所有值组合在一起的图形,我如何才能按“分数”为所有组合绘制数据“分数”?

这里有一种方法。您可以绘制
得分
等级
,并使用
stat\u summary
添加穿过每个
等级
平均值的线,以及包含95%置信区间的功能区。这就是你的想法吗

ggplot(subset(data, size == 1), aes(x = grade, y = score)) + geom_line()
绘图

或者,您可以绘制每个
等级
和标准误差条的平均值点

library(ggplot2)

ggplot(data = data, mapping = aes(x = grade, y = score)) +
  stat_summary(geom = "line", fun = mean, linetype = "dashed") +
  stat_summary(geom = "ribbon", fun.data= mean_cl_normal, fun.args = list(conf.int=0.95), alpha=.1) +
  scale_x_continuous(breaks = data$grade)
绘图


这里有一种方法。您可以绘制
得分
等级
,并使用
stat\u summary
添加穿过每个
等级
平均值的线,以及包含95%置信区间的功能区。这就是你的想法吗

ggplot(subset(data, size == 1), aes(x = grade, y = score)) + geom_line()
绘图

或者,您可以绘制每个
等级
和标准误差条的平均值点

library(ggplot2)

ggplot(data = data, mapping = aes(x = grade, y = score)) +
  stat_summary(geom = "line", fun = mean, linetype = "dashed") +
  stat_summary(geom = "ribbon", fun.data= mean_cl_normal, fun.args = list(conf.int=0.95), alpha=.1) +
  scale_x_continuous(breaks = data$grade)
绘图



你可以使用
facet\u wrap(~class+size)
这将为每个组合提供一个绘图。

你可以使用
facet\u wrap(~class+size)
这将为每个组合提供一个绘图。

你在寻找这样的东西:
ggplot(数据,aes(x=grade,y=score,group=size))+geom\u line()
group
会根据相同的
size
在这种情况下连接线中的点…@Ben谢谢,但假设我只想为所有数据获取一条几何线()。@Ben在这种情况下,人们只取平均值吗?这取决于你想显示的内容…你还可以显示1、2和3级的值的“范围”(3条垂直线)。或者你可以显示带或不带误差条的平均值/95%置信区间,或者其他…如果你进一步描述数据是什么样的,或者在网上找到其他你认为可以讲述数据故事的图表示例,我们可以尝试一些不同的
ggplot
方法,可能满足你的需要…@Ben非常感谢。你能帮我演示一下吗所有值的“平均值”以95%的间隔编译/不以95%的间隔编译?您是否在寻找这样的东西:
ggplot(数据,aes(x=等级,y=分数,组=大小))+geom_线()
将根据相同的
大小连接线中的点
在这种情况下…@Ben谢谢你,但假设我只想为所有数据获取一条几何线()。@Ben在这种情况下,人们只取平均值吗?这取决于你想显示什么…你还可以显示1、2和3级的值的“范围”(3条垂直线)。或者你可以显示带或不带误差条的平均值/95%置信区间,或者其他…如果你进一步描述数据是什么样的,或者在网上找到其他你认为可以讲述数据故事的图表示例,我们可以尝试一些不同的
ggplot
方法,可能满足你的需要…@Ben非常感谢。你能帮我演示一下吗所有值的“平均值”以95%的间隔编译/不以95%的间隔编译?这真是太好了!我在自己的数据上尝试了它,但得到了以下错误:没有提供摘要函数,默认为'mean_se().但我认为这没问题?您使用的是什么版本的
ggplot2
?我使用的是3.3.0ggplot2_3.2.1,所以我会更新!我现在只是想知道--如果让我们假设我希望为所有groupo生成一行,我将更新!在我的示例中,“大小”对应于类大小,这是否与我最初理解的有点不同。如果您想知道计算加权平均值,我会在
ggplot
stat\u summary
之外分别进行。您可以创建一个包含3个平均值、3个较低CI值和3个较高CI值的简单表,然后使用
geom\u line
geom\u功能区
用加权平均值重新创建一个类似的图。但不清楚这是否是一个简单的表s是您真正想要的。您可能希望从上的一篇新文章开始,以便更详细地描述您希望对数据执行的操作以及您可能希望作为绘图的最终结果执行的操作?这真是太好了!我在自己的数据上尝试了它,但出现了以下错误:没有提供摘要函数,默认为'mean_se().但我认为这没问题?您使用的是什么版本的
ggplot2
?我使用的是3.3.0ggplot2_3.2.1,所以我会更新!我现在只是想知道--如果让我们假设我希望为所有groupo生成一行,我将更新!在我的示例中,“大小”对应于类大小,这是否与我最初理解的有点不同。如果您想知道计算加权平均值,我会在
ggplot
stat\u summary
之外分别进行。您可以创建一个包含3个平均值、3个较低CI值和3个较高CI值的简单表,然后使用
geom\u line
geom\u功能区
用加权平均值重新创建一个类似的图。但不清楚这是否是一个简单的表s是您真正想要的。您可能希望从上的一篇新文章开始,以便更详细地描述您希望对数据执行的操作,以及您希望作为绘图的最终结果是什么?