laf*_*ras 9 r ggplot2 dataframe r-factor
我有一个数据框,其中列最初标记为任意.稍后,我想将这些级别更改为数值.以下脚本说明了该问题.
library(ggplot2)
library(reshape2)
m <- 10
n <- 6
nam <- list(c(),letters[1:n])
var <- as.data.frame(matrix(sort(rnorm(m*n)),m,n,F,nam))
dtf <- data.frame(t=seq(m)*0.1, var)
mdf <- melt(dtf, id=c('t'))
xs <- c(0.25,0.5,1.0,2.0,4.0,8.0)
levels(mdf$variable) <- xs
g <- ggplot(mdf,aes(variable,value,group=variable,colour=t))
g +
geom_point() +
#scale_x_continuous() +
opts()
Run Code Online (Sandbox Code Playgroud)
这个图是产生的.

'变量'量在图上均匀分布,即使在数字上这不是真的.如何才能使x轴上的间距正确?
Sac*_*amp 14
我认为你可以通过将变量转换为数字来做到这一点:
mdf$variable <- as.numeric(as.character(mdf$variable))
g <- ggplot(mdf,aes(variable,value,group=variable,colour=t))
g +
geom_point() +
#scale_x_continuous() +
opts()
Run Code Online (Sandbox Code Playgroud)
您需要将因子转换为数字:
mdf$numVariable <- as.numeric(as.character(mdf$variable))
g <- ggplot(mdf,aes(numVariable,value,group=variable,colour=t))
g +
geom_point() +
#scale_x_continuous() +
opts()
Run Code Online (Sandbox Code Playgroud)
或者只是在调用 ggplot 时进行转换:
g <- ggplot(mdf,aes(as.numeric(as.character(variable)),value,group=variable,colour=t))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40670 次 |
| 最近记录: |