如何绘制两个因素的多个直方图

时间:2019-02-18 10:13:29

标签: r dataframe histogram

我有一个像这样的data.frame(简化了,实际上每个参数有更多的值):

   params        value status
1    par1 9.214378e-01   good
...
5    par1 3.907796e+03   good
6    par1 1.440000e-01   bad
...
13   par1 5.343397e+01   bad
14   par2 3.430469e-03   good
...
18   par2 5.722368e-01   good
19   par2 3.764936e-03   bad
...
26   par2 1.291550e-01   bad
27   par3 4.750810e-01   good

具有20个参数的值,两个参数分别为“好” /“坏”。 我想将其绘制成表格形式的一组图表,在其中我可以看到“好”与“坏”的区别,每个参数有两个重叠的直方图。 每个参数都处于其特征间隔内。

我已经尝试过ggplot

p1 <- ggplot(data = DF) +
  geom_histogram(aes(x=value, color=status)) +
  facet_wrap(~params)

但这不起作用-条形图彼此堆叠 enter image description here

2 个答案:

答案 0 :(得分:1)

使用position = 'dodge',否则这些条将被堆叠。

我猜您正在寻找:

ggplot(data = data, aes(x=value, fill=status)) +
           geom_histogram(position = 'dodge') +
           facet_wrap(~params)

请让您的问题更具体,即不是2个因素,而是2个水平。

答案 1 :(得分:0)

我认为我发现解决方案以及其他scales = "free"丢失了

p1 <- ggplot(data = DF) +
  geom_histogram(aes(x=value, fill=as.factor(status))) +
  facet_wrap(~params,scales = "free")

现在只能看到10个参数的曲线图, enter image description here