如何将不同分布的箱形图放在同一坐标轴上

时间:2020-06-04 07:08:56

标签: r

我想将箱形图的这两种分布放在相同的y轴上。我该如何编码? 谢谢!

a<- rnorm(50,0,1)
b <- rnorm(50,0,1)

par(mfrow=c(1,2)) 
barplot(sort(a), main="a", ylab="",cex.main=0.9)
barplot(sort(b), main="b", ylab="",cex.main=0.9)

enter image description here

2 个答案:

答案 0 :(得分:2)

您需要在y轴上指定范围:

from abc import ABCMeta, abstractmethod

class Meta(ABCMeta):
    pass

class BaseClass(metaclass=Meta):
    @abstractmethod
    def something(self):
        pass

class DerivedClass(BaseClass):
    def something(self):
        return 1

try:
    BaseClass()
except TypeError:
    pass
else:
    raise Exception('Meta class failed')

DerivedClass()

或者,如果您希望两个图都只有一个 y y轴,则可以使用par(mfrow=c(1,2)) barplot(sort(a), main="a", ylab="",cex.main=0.9, ylim = c(-1, 2)) barplot(sort(b), main="b", ylab="",cex.main=0.9, ylim = c(-1, 2)) 来取消第二个y轴:

yaxt = "n"

enter image description here

答案 1 :(得分:1)

使用ggplot

library(tidyverse)
a<- rnorm(50,0,1)
b <- rnorm(50,0,1)

df <- tibble(a = a, b = b) %>% 
  pivot_longer(a:b)

df %>% 
  ggplot(aes(x = if_else(name == "b", value + 4, value), y = value, fill = name, color = name)) +
  geom_col()+
  theme(axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank())