R默认情况下,绘制一个按X轴排序的折线图,我希望它按dataframe中的位置排序
我有一个如下所示的数据帧:R默认情况下,绘制一个按X轴排序的折线图,我希望它按dataframe中的位置排序,r,plot,ggplot2,R,Plot,Ggplot2,我有一个如下所示的数据帧: df = read.table(text = "names x y MV O4, -0,33 -1,2 -5,2 O9,5 -0,305 -1,1 -3,6 B0 -0,3 -1,08 -3,25 B0,5 -0,28 -1 -2,6 B1,5 -0,25 -0,9 -2,1 B2,5 -0,
df = read.table(text =
"names x y MV
O4, -0,33 -1,2 -5,2
O9,5 -0,305 -1,1 -3,6
B0 -0,3 -1,08 -3,25
B0,5 -0,28 -1 -2,6
B1,5 -0,25 -0,9 -2,1
B2,5 -0,22 -0,8 -1,5",
dec = ",", sep = "", header = TRUE)
使用ggplot2打印时,它会基于X轴对我的值进行排序
但我希望通过点在data.frame中的位置对点进行排序
有人能帮我吗?只需将x列转换为因子,并按如下方式绘制:
df$x <- as.factor(df$x)
library(ggplot2)
#the important thing below is to specify group=1 so that all points
#are treated as the same group. the group argument is needed when
#the x-axis is of class factor.
ggplot(df, aes(x=as.factor(x), y=y, group=1)) + geom_path()
df$x第一列中的B
s和O
s是什么意思?你可以用geom_path
B0和B1生成这样一个图,5例如名称应该在x轴和y轴上绘制什么?问题是geom_path将按原始顺序连接点,但我希望点本身在x轴上按原始顺序。X轴=X列Y轴=Y列非常感谢。有一种方法,我可以让负y轴在顶部,正数在底部?不客气:)。同样,唯一的方法是将y轴也转换为因子,并以您喜欢的方式对data.frame进行排序。但是请记住,如果x轴和y轴都是因子,那么直线将始终是直线,因为如果两个轴都是因子,则它们之间的数值距离将丢失。i、 e.1和2之间的距离将与1和3相同,因为您得到的是因子而不是数字。除非您的意思是将它们作为数字排序,但反过来(即反转),在这种情况下,您可以在绘图中添加+scale\u y\u reverse()
。尝试以下操作:ggplot(df,aes(x=as.factor(x),y=y,group=1))+geom\u path()+scale\u y\u reverse()
我刚刚意识到,y和X都是已经使用scale\u y\u reverse()的因子,我得到一个错误:“y”的比例已经存在。为“y”添加另一个比例,它将替换现有比例。我必须把Y转换成数字吗?