R 绘制平均值直方图并标记单个平均值/PDF

R 绘制平均值直方图并标记单个平均值/PDF,r,plot,rstudio,R,Plot,Rstudio,所以我有一个图,它显示了一群人的平均分数。我想知道如何在同一张图片中,绘制或标记X(参见图片,我用油漆添加了X),其中X表示一个学生与其他学生的平均值 我的代码 CairoPDF(paste('output/picture/', student, '_hist.pdf', sep=''), family='sans',) hist(means.students.all, xlab="Means", main="Average Ratings") dev.off() 这里有两种添加标签的方法。首

所以我有一个图,它显示了一群人的平均分数。我想知道如何在同一张图片中,绘制或标记X(参见图片,我用油漆添加了X),其中X表示一个学生与其他学生的平均值

我的代码

CairoPDF(paste('output/picture/', student, '_hist.pdf', sep=''), family='sans',)
hist(means.students.all, xlab="Means", main="Average Ratings")
dev.off()

这里有两种添加标签的方法。首先,一些随机数据和规则直方图:

set.seed(0)
means <- rnorm(1000, 4.5, 0.2)
hist(means)
使用
y
表示垂直位置,
pch
表示要打印的类型或字符,
cex
控制其大小

另一个提供更多可能性的选项是使用
text()

这样,您可以打印完整的字符串(如学生的姓名),使用
srt
将其旋转90度以更好地适合打印,并使用
adj
将文本与左水平对齐和居中垂直对齐(这与未旋转的文本相关)。上述所有情况将导致:


谢谢你的回答,这对我帮助很大。但我正在用latex生成pdf报告,例如,我的数据集中有300名学生的平均分数。我如何定义直方图中的代码,因此当我为300名学生生成300份pdf报告时,直方图和X标签将被标记为不同的,这意味着直方图上标记的X将根据[I]学生的平均值在直方图中定位不同。更准确地说,我有3个变量:学生ID(300个不同的学生ID)=(100101102…)班级ID(100010011002…)和我用来驱动均值直方图的变量:means.students.all。现在根据变量students ID和班级ID,我想找到[I]的平均值学生,并在所有平均值的直方图中对其进行标记,即means.students.all。这样,我将在同一直方图中为每个学生设置300个不同的X标签。我不确定我是否理解您的意思,但您可以使用
X=means[I]在调用中选择学生
I
的平均值
。无论您使用什么方法循环遍历学生并为每个学生生成报告,您都可以使用相同的变量来选择相应的平均值。首先,我想绘制一个变量“means.students.all”的直方图并根据学生ID标记每个学生的平均值。因此,最后我将有300个PDF,具有相同的直方图(means.STUDENTS.all),但标记X的位置不同,该位置基于变量“means.STUDENTS.all”中的学生平均值这可能适合另一个问题,但是,您将使用类似for循环的内容:
for(i in 1:nrow(data)){plot(…)points(x=mean[i],…)}
。有关如何做的更多详细信息,我建议您首先为每个学生(学生100)编写完整的代码,然后尝试在循环中转换,如有必要,创建一个包含详细信息的新问题。
points(x=means[1], y=0, pch="X", cex=1.5)
text(x=means[2], y=0, label="StudentX", cex=1.5, srt=90, adj=c(0,0.5))