Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R每个样品的条形图标签尺寸_R_Plot - Fatal编程技术网

R每个样品的条形图标签尺寸

R每个样品的条形图标签尺寸,r,plot,R,Plot,我想根据它们的大小(即组中dataframe中的观察数)在条形图中标记每个框 e、 如果第一个变量有3个级别,第二个变量有4个级别,我想要12个标签 (此外,是否可以控制这些标签的大小或位置) 感谢您的帮助。这里有一种方法可以做到这一点,以数据为例(默认情况下,它将在您的R工作区中,如果没有,请使用库(数据集)) 现在,要在条形图上绘制文本,我们基本上绘制条形图,然后使用R命令text(请参见?text)在顶部绘制文本 text要求在条形图上绘制x、y坐标和相应的文本片段。我们将给出条形图中每条

我想根据它们的大小(即组中dataframe中的观察数)在条形图中标记每个框

e、 如果第一个变量有3个级别,第二个变量有4个级别,我想要12个标签

(此外,是否可以控制这些标签的大小或位置)


感谢您的帮助。

这里有一种方法可以做到这一点,以数据
为例(默认情况下,它将在您的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 )