【问题标题】:plotting melted variables in manually defined order ggplot以手动定义的顺序绘制融化的变量ggplot
【发布时间】:2013-11-05 14:10:35
【问题描述】:

我有一个六列矩阵。我想分别绘制每一列。

首先我创建矩阵:

a<-replicate(6,rnorm(100))
colnames(a)<-c("one", "two", "three", "four", "five","six")

然后我melt()变量:

b<-melt(a, id.vars=1:6)
    colnames(b)<-c("c","variable","value")

现在我想绘制这些变量:

ggplot(b,aes(x = c, y = value, colour = variable, linetype = variable,size = variable)) + 
     geom_line() + 
     scale_x_continuous(breaks=seq(0,100,5)) +
     scale_colour_manual(values=c("blue1", "blue1","blue1","blue1","blue1","blue1")) + 
     scale_linetype_manual(values = c(0,0,1,0,0,0)) + 
     scale_size_manual(values = c(0.2,0.2,0.2,0.2,0.2,0.2)) + 
     xlab("\nT") + 
     ylab("O\n") +
     theme_bw()

但是,变量并没有按照指定的“一”、“二”、“三”等顺序绘制,而是混合为:五四一六三二。如何按指定的列名顺序绘制变量?

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    b$variable 将显示该列的因子水平。这就是ggplot 的顺序。您可以像这样更改级别 - b$variable &lt;- factor(b$variable, levels =c("one","two","three","four","five","six"))

    【讨论】:

      【解决方案2】:

      您需要更改因子水平的顺序才能手动定义沿 x 轴的顺序。

      b$c

      请注意,这也决定了图例中项目的顺序,如果您使用一个的话。不过图例中的项目顺序也可以用scale_fill_discrete(limits = c("item1", "item2"))设置

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-15
        • 1970-01-01
        • 2019-09-06
        • 1970-01-01
        • 1970-01-01
        • 2018-10-25
        相关资源
        最近更新 更多