我使用barplot()函数从矩阵创建堆积图表。
矩阵看起来像这样:
1 0.989013 0.010987
2 0.999990 0.000010
3 0.999990 0.000010
4 0.999990 0.000010
创建堆积图表的代码如下所示:
barplot(t(as.matrix(x)), col=c("cyan", "black"))
问题是我想在某些点创建带有刻度和标签的自定义x轴。我使用以下来创建x轴:
axis(1, at=keyindexes, labels=unique(t$V4), tck=-0.01)
其中keyindexes是条形码的向量,我需要有标记,而唯一(t $ V4)是包含每个标记的唯一名称的向量。
现在的问题是x轴与图表区域不匹配并且明显更短。任何人都可以建议如何使x轴更长?
答案 0 :(得分:17)
轴标签的问题实际上是条形不以整数为中心。
例如,制作一些包含十行的数据并使用barplot()
绘制它们。然后为x轴添加axis()
,数字从1到10。
set.seed(1)
x<-data.frame(v1=rnorm(10),v2=rnorm(10))
barplot(t(as.matrix(x)), col=c("cyan", "black"))
axis(1,at=1:10)
现在轴文本不在正确的位置。
要解决此问题,barplot()
应保存为对象,此对象应用作轴中的at=
值。
m<-barplot(t(as.matrix(x)), col=c("cyan", "black"))
m
[1] 0.7 1.9 3.1 4.3 5.5 6.7 7.9 9.1 10.3 11.5
axis(1, at=m,labels=1:10)
如果只应绘制一些轴刻度文本,那么您可以对所需的m
值进行分组,并提供相同长度的labels=
。在此示例中,仅注释了1.,5。和10.条。
m<-barplot(t(as.matrix(x)), col=c("cyan", "black"))
lab<-c("A","B","C")
axis(1, at=m[c(1,5,10)],labels=lab)
答案 1 :(得分:0)
查看TeachingDemos包中的updateusr
函数。此功能将更改或“更新”绘图的用户坐标。该示例显示更改条形图的x轴坐标以匹配其他绘图的直观值。