我正在寻找一种方式,其中数据点以自上而下的方式连接以可视化排名。其中,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
答案 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()
如果你打算用R做你的情节,那么学习ggplot2
确实是值得的。您可以在Cookbook for R上找到许多示例。