如何在R中绘制图,以便变量的值沿X轴显示,变量名沿Y轴垂直移动?最终,绘图应该看起来垂直,Y轴上的变量名称和X轴上的值.
下面的代码表面上会这样做,但问题是实际的绘图值不会随轴翻转.意思是,该图仍然构造为名称沿着X轴并且值沿着Y轴.
以下变量:
value =数字的列向量
name =与每个数字对应的名称列
plot(value, axes=F, xlab="", ylab= "", type= "b", xlim=c(-5, 50), ylim=c(0, 8))
axis(1)
axis(2, at = 1:length(name), labels = name, las=1, pos=-3.0,cex.axis=.65 )
Run Code Online (Sandbox Code Playgroud)
谢谢!
为了方便这方面的灵活性,我喜欢lattice
包中的绘图功能:
library(lattice)
# First make some example data
df <- data.frame(name=rep(c("a", "b", "c"), each=5), value=rnorm(15))
# Then try plotting it in both 'orientations'
# ... as a dotplot
xyplot(value~name, data=df)
xyplot(name~value, data=df)
# ... or perhaps as a 'box-and-whisker' plot
bwplot(value~name, data=df)
bwplot(name~value, data=df)
Run Code Online (Sandbox Code Playgroud)
如果你需要,你也可以用它绘制base graphics
,虽然你必须在轴标签上稍微工作:
plot(x=df$value, y=df$name, yaxt="n",
xlab="value", ylab="name")
axis(2, at=1:3, labels=levels(df$name), las=1)
Run Code Online (Sandbox Code Playgroud)
一旦使用"plot"基函数,用户坐标就固定了.这就像用墨水书写.以后不可能通过调用轴来翻转它们.这种体操需要更加面向对象的方法,例如格子或ggplot系统.它们允许创建可以更新或修改的对象.如果您有一个ggplot对象,您可以执行以下操作:
p + coord_flip()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35086 次 |
最近记录: |