ggplot只打印最后一张图

时间:2020-06-29 22:49:29

标签: r loops ggplot2

感谢您建立这个美好的社区。我正在尝试创建一个循环以制作大量图形。但是,仅显示最后一张图。

这是我的数据集。我本质上是按基因划分子集,然后尝试创建图。

enter image description here

这是我的代码。

data_before_heart <- subset(data_before, Organ == 0)
uniq <- unique(unlist(data_before_heart$Gene))
for (i in 1:length(uniq)){
  data_1 <- subset(data_before_heart, Gene == uniq[i])
  print(ggplot(data_1, aes(x=Drug, y=Expression)) +
    geom_bar(stat="identity"))
}

不幸的是,这仅生成最后一张图。 (有0、1、2、3、4、5个共有6个基因)

1 个答案:

答案 0 :(得分:1)

您的代码对我来说可以很好地处理“假”数据,并生成预期数量的条形图,而不会出现任何问题:

facet_wrap

也许您的数据集有问题?是否有任何错误消息? data_before_heart %>% ggplot(aes(x = Drug, y = Expression)) + geom_bar(stat = "identity") + facet_wrap(~ Gene, nrow = 5, ncol = 2, scales = "fixed") 提供了一种优雅的选择:

@Table(name = "random_value")
@Entity(name = "random_value")
public class RandomValue
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    protected long id;

    @Column(name = "random_value", nullable = false)
    private String value;

    public RandomValue()
    {
    }

    public long getId()
    {
        return id;
    }

    public void setId(long id)
    {
        this.id = id;
    }

    public String getValue()
    {
        return value;
    }

    public void setValue(String value)
    {
        this.value = value;
    }
}

enter image description here