R每个样品的条形图标签尺寸
我想根据它们的大小(即组中dataframe中的观察数)在条形图中标记每个框 e、 如果第一个变量有3个级别,第二个变量有4个级别,我想要12个标签 (此外,是否可以控制这些标签的大小或位置)R每个样品的条形图标签尺寸,r,plot,R,Plot,我想根据它们的大小(即组中dataframe中的观察数)在条形图中标记每个框 e、 如果第一个变量有3个级别,第二个变量有4个级别,我想要12个标签 (此外,是否可以控制这些标签的大小或位置) 感谢您的帮助。这里有一种方法可以做到这一点,以数据为例(默认情况下,它将在您的R工作区中,如果没有,请使用库(数据集)) 现在,要在条形图上绘制文本,我们基本上绘制条形图,然后使用R命令text(请参见?text)在顶部绘制文本 text要求在条形图上绘制x、y坐标和相应的文本片段。我们将给出条形图中每条
感谢您的帮助。这里有一种方法可以做到这一点,以数据
为例(默认情况下,它将在您的R工作区中,如果没有,请使用库(数据集)
)
现在,要在条形图上绘制文本,我们基本上绘制条形图,然后使用R命令text
(请参见?text
)在顶部绘制文本
text
要求在条形图上绘制x、y坐标和相应的文本片段。我们将给出条形图中每条线的坐标来绘制文本
为此,请参见“值”部分?条形图。此函数不仅打印条形图,还返回每个条形图的x坐标。得分
> bar <- barplot(VADeaths)
> bar
[1] 0.7 1.9 3.1 4.3
由于我们希望对vad
中的每一列执行此操作,因此必须使用函数apply
> apply(VADeaths,2,cumsum)
Rural Male Rural Female Urban Male Urban Female
50-54 11.7 8.7 15.4 8.4
55-59 29.8 20.4 39.7 22.0
60-64 56.7 40.7 76.7 41.3
65-69 97.7 71.6 131.3 76.4
70-74 163.7 125.9 202.4 126.4
apply(vadeations,2,cumsum)
表示:“对于vadeations
中的每一列,计算该列的cumsum
”。
这将为条形图的每一行提供y值
让我们保存这些Y值以供进一步使用:
> yvals <- as.vector(apply(VADeaths,2,cumsum))
这会将我以前的x1,x2,x3,x4
转换为x1,x1,x1,x1,x1,x2,x2,x2,x2,…,x4,x4,x4
。
现在,我的xvals
与我的yvals
匹配
在此之后,只需使用文本
> text( xvals, yvals, labels=yvals, pos=3 )
标签
参数告诉文本
在x/y位置放置什么文本。
pos=3
表示“在指定的x/y值上方绘制每一位文本”。否则,数字将绘制在条形图的线条上,这将很难读取
现在,有许多选项可用于自定义文本的位置和大小,我建议您阅读?text
以查看它们
所有这些代码都归结为我在答案开头给出的两行代码,但这个版本可能更容易理解:
bar <- barplot(VADeaths)
xvals <- rep(bar,each=nrow(VADeaths))
yvals <- as.vector(apply(VADeaths,2,cumsum))
text( xvals, yvals, labels=yvals, pos=3 )
条
> yvals <- as.vector(apply(VADeaths,2,cumsum))
> xvals <- rep(bar,each=nrow(VADeaths))
> text( xvals, yvals, labels=yvals, pos=3 )
bar <- barplot(VADeaths)
xvals <- rep(bar,each=nrow(VADeaths))
yvals <- as.vector(apply(VADeaths,2,cumsum))
text( xvals, yvals, labels=yvals, pos=3 )