我想制作一个简单的条形图,但我有一个问题,我在x轴上有重复的名称.因此,当我试图在x轴上写名时,它不会显示完整的字符串.我有以下数据
x <- c(1.8405917,0.3265986,1.5723623,464.7370299,0.0000000,3.2235716,
3.1223534, 7.0999787, 1.7122258,3.2005524,3.7531266,469.4436828)
Run Code Online (Sandbox Code Playgroud)
我正在使用barplot
barplot(x,xlab=c("AA/AA","AA/CC","AA/AC","AA/NC","CC/AA","CC/CC","CC/AC",
"CC/NC","AC/AA","AC/CC","AC/AC","AC/NC"))
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我也用过
axis()
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
提前致谢.
Rei*_*son 22
不,xlab是为图的整个x轴提供标签,而不是标记单个条.
barplot() 从绘制的矢量名称中获取条形的标签(或者可以导出到一组名称中的东西).
> names(x) <- c("AA/AA", "AA/CC", "AA/AC", "AA/NC", "CC/AA", "CC/CC", "CC/AC",
+ "CC/NC", "AC/AA", "AC/CC", "AC/AC", "AC/NC")
> barplot(x)
> ## or with labels rotated, see ?par
> barplot(x, las = 2)
Run Code Online (Sandbox Code Playgroud)
编辑:正如@Aaron所提到的,barplot()还有一个names.arg为酒吧提供标签.这?barplot就是说:
names.arg:要在每个条形或条形组下面绘制的名称向量.如果省略此参数,则从names属性中获取名称(height如果这是矢量),或者列名称是否为矩阵.
这解释了names.arg未提供的默认行为- 即从绘制的对象中获取名称.哪种用法对您最有用主要是品味问题.没有行/列/名称可能会略微加快代码,但许多R的函数将names直接从对象获取属性(或类似的行名称),因此您不必继续为结果的绘图/标记提供标签等等
使用的方法axis()是捕捉中点,这是barplot函数返回的。见?barplot:
mids <- barplot(x, xlab="")
axis(1, at=mids, labels=c("AA/AA","AA/CC","AA/AC","AA/NC","CC/AA","CC/CC",
"CC/AC","CC/NC","AC/AA","AC/CC","AC/AC","AC/NC"),
las=3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63261 次 |
| 最近记录: |