Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R默认情况下,绘制一个按X轴排序的折线图,我希望它按dataframe中的位置排序_R_Plot_Ggplot2 - Fatal编程技术网

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转换成数字吗?