垂直折线图 - 在R中将线绘图方向改为自上而下

时间:2015-05-08 21:45:32

标签: r plot linegraph

我正在寻找一种方式,其中数据点以自上而下的方式连接以可视化排名。其中,y轴表示等级,x轴表示属性。通过正常设置,该线连接从左到右的点。这导致点以错误的顺序连接。

下面的数据应该从(6,1)到(4,2)然后是(5,3)等连接。最理想的是,排名等级需要反转,以便排名1从顶部开始。

data <- read.table(header=TRUE, text='
attribute rank
1    6
2    5
3    4
4    2
5    3
6    1
7    7
8   11
9   10
10    8
11    9
')

plot(data$attribute,data$rank,type="l")

有没有办法改变画线方向?我的第二个想法是旋转图表,或者你有更好的想法。

我想要实现的图表与此类似: example vertical line chart

1 个答案:

答案 0 :(得分:0)

您可以使用ggplot:

执行此操作
library(ggplot2)
ggplot(data,aes(y=attribute,x=rank)) + geom_line() + coord_flip() +
   scale_x_reverse()

它完全按照您的建议解决问题。命令的第一部分(ggplot(...) + geom_line())创建一个“普通”线图。请注意,我已经切换了x坐标和y坐标。下一个命令(coord_flip())翻转x轴和y轴,最后一个命令(scale_x_reverse)改变x轴的排序(绘制为y轴),使得1在左上角。

只是为了向您展示您在问题中链接的示例可以使用ggplot2完成,我添加以下示例:

ibrary(reshape2)
data$attribute2 <- sample(data$attribute)
data$attribute3 <- sample(data$attribute)
plot.data <- melt(data,id="rank")
ggplot(plot.data,aes(y=value,x=rank,colour=variable)) + geom_line() +
   geom_point() + coord_flip() + scale_x_reverse()

enter image description here

如果你打算用R做你的情节,那么学习ggplot2确实是值得的。您可以在Cookbook for R上找到许多示例。