14

最初に任意にラベル付けされた列を持つデータフレームがあります。後で、これらのレベルを数値に変更したいと思います。次のスクリプトは、問題を示しています。

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()

このプロットが作成されます。

ここに画像の説明を入力してください

数値的には正しくありませんが、「変数」の量はプロット上で等間隔に配置されます。x軸の間隔を正しくするにはどうすればよいですか?

4

2 に答える 2

20

変数を数値に変換するだけでこれを実行できると思います。

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()
于 2011-06-17T13:23:49.813 に答える
5

係数を数値に変換する必要があります。

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()

または、ggplotの呼び出しで変換を実行します。

g <- ggplot(mdf,aes(as.numeric(as.character(variable)),value,group=variable,colour=t))
于 2011-06-17T13:26:23.633 に答える