Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.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 使用ggplot2_R_Plot_Ggplot2 - Fatal编程技术网

R 使用ggplot2

R 使用ggplot2,r,plot,ggplot2,R,Plot,Ggplot2,我的问题与R(3.2.3)中的ggplot2有关。我有4个数据集,包含2列和大约80000-100000行。我使用以下代码为其中一个数据集创建绘图: dataset1 <- read.table("file1.txt", header=T) ggplot(data=dataset1, aes(dataset1$length))+ geom_histogram (binwidth =500)+ scale_x_continuous(breaks=seq(300,1000,by=200),se

我的问题与R(3.2.3)中的ggplot2有关。我有4个数据集,包含2列和大约80000-100000行。我使用以下代码为其中一个数据集创建绘图:

dataset1 <- read.table("file1.txt", header=T)
ggplot(data=dataset1, aes(dataset1$length))+ geom_histogram (binwidth =500)+
scale_x_continuous(breaks=seq(300,1000,by=200),seq(1001,15000,by=1000))
在原始数据文件中,它继续以类似于我发布的方式增加到12000。您认为ggplot2是否适合此绘图,如果不适合,请建议正确的绘图

此外,我正在寻找一种在一个图中显示所有4个数据集的长度分布的方法,以便轻松比较它们。如果你能告诉我怎么做,我将不胜感激


非常感谢。

我想你应该换个新的

scale_x_continuous(breaks=seq(300,1000,by=200),seq(1001,15000,by=1000))

(不完全确定你的意思)

根据你的样本数据,我生成了一些只包含长度的人工数据

 df1 = data.frame(length=runif(300,300,1200))
 df2 = data.frame(length=runif(300,300,1200))
 df3 = data.frame(length=runif(300,900,1200))
 df2 = data.frame(length=runif(300,300,12000))
 df4 = data.frame(length=runif(300,300,12000))

# plotting a single dataset
 ggplot(data=df4, aes(length))+ geom_histogram (binwidth =500)+
 +     scale_x_continuous(breaks=c(seq(300,1000,by=200),seq(1001,15000,by=1000)))
#combine the datframes
df = data.frame(df1$length,df2$length,df3$length,df4$length)
library(reshape)
melted <- melt(df)
ggplot(data=melted, aes(value))+aes(fill=variable)+ geom_histogram (binwidth =500)+
     scale_x_continuous(breaks=c(seq(300,1000,by=200),seq(1001,15000,by=1000)))

为了有一个稍微好一点的X轴标签,我重新分配了一些标签,并将它们旋转了45度

ggplot(data=melted, aes(value))+aes(fill=variable)+ geom_histogram (binwidth =500,position="dodge")+
     scale_x_continuous(breaks=c(seq(300,1000,by=200),seq(1100,15000,by=1000)))+theme(axis.text.x = element_text(angle = 45, hjust = 1))

图表开关会相应地调整箱子。事实上,我喜欢不同大小的酒吧

ggplot(data=melted, aes(value))+
        aes(fill=variable)+ 
        geom_histogram(breaks=c(seq(300,1000,by=200),seq(1100,15000,by=1000)),position="dodge")+

        scale_x_continuous(breaks=c(seq(300,1000,by=200),seq(1100,15000,by=1000)))+
        theme(axis.text.x = element_text(angle = 45, hjust = 1))

我在下面给出了答案。但是,如果您提供了示例数据(例如,使用iris),则会更容易。此外,您的间隔也匹配。我使用了您建议的修改,但由于数据量大,绘图不有趣。我想附上图片,但不知道如何在评论部分。我只是做了两个小的更新,以纳入4个数据集的问题。您不能将图像作为评论上传:(最好将其上传到web的某个位置并提供链接。但是,“intrestingness”可能更像是您的数据问题。非常感谢您的回复。实际上,第一个组合图是我想要的。但是,x轴标签(图的左侧)这是由于大量数据造成的混乱。你能告诉我它是如何变得清晰的吗?很抱歉,还有一个更进一步的问题,可能是一个基本的问题,我没有完全理解“data.frame(length=runif(3003003001200))”的含义。如果我能得到你的解释,那就太好了,我在R中真的是个新手。命令data.frame(length=runif(3001200))生成一些样本数据(300到1200之间的300个点)有一个稍微大一点的数据集。我还添加了另一个带有翻转标签的版本。我意识到更薄的一点是,箱子宽度当前仅在标签中,而不在直方图中。为该数据集添加了另一个版本。我希望我提供的图表集允许您构建所需的图表。最后,我发现了这个问题。它与melted的格式有关,melted有3个coulmns,如这里所示,设置了contig length(header)1 Dataset 1 seq1 773,因此我在MELTE命令的末尾添加了“measure=c(3)),head改为设置contig变量值(header)1数据集1 seq1 length 773。最后,我使用以下命令绘制:ggplot(data=melled,aes(value))+aes(fill=set)+geom_直方图(binwidth=500)+scale_x_continuous(breaks=c(seq(3001000,by=200),seq(100115000,by=1000))。这张图听起来不错。很抱歉这样写,很难读。再次感谢您所做的一切
 df1 = data.frame(length=runif(300,300,1200))
 df2 = data.frame(length=runif(300,300,1200))
 df3 = data.frame(length=runif(300,900,1200))
 df2 = data.frame(length=runif(300,300,12000))
 df4 = data.frame(length=runif(300,300,12000))

# plotting a single dataset
 ggplot(data=df4, aes(length))+ geom_histogram (binwidth =500)+
 +     scale_x_continuous(breaks=c(seq(300,1000,by=200),seq(1001,15000,by=1000)))
#combine the datframes
df = data.frame(df1$length,df2$length,df3$length,df4$length)
library(reshape)
melted <- melt(df)
ggplot(data=melted, aes(value))+aes(fill=variable)+ geom_histogram (binwidth =500)+
     scale_x_continuous(breaks=c(seq(300,1000,by=200),seq(1001,15000,by=1000)))
 ggplot(data=melted, aes(value))+aes(fill=variable)+ geom_histogram (binwidth =500,position="dodge")+
    scale_x_continuous(breaks=c(seq(300,1000,by=200),seq(1001,15000,by=1000)))
ggplot(data=melted, aes(value))+aes(fill=variable)+ geom_histogram (binwidth =500,position="dodge")+
     scale_x_continuous(breaks=c(seq(300,1000,by=200),seq(1100,15000,by=1000)))+theme(axis.text.x = element_text(angle = 45, hjust = 1))
ggplot(data=melted, aes(value))+
        aes(fill=variable)+ 
        geom_histogram(breaks=c(seq(300,1000,by=200),seq(1100,15000,by=1000)),position="dodge")+

        scale_x_continuous(breaks=c(seq(300,1000,by=200),seq(1100,15000,by=1000)))+
        theme(axis.text.x = element_text(angle = 45, hjust = 1))