按观察次数过滤ggplot2密度图

Jam*_*mes 3 r ggplot2

是否有可能过滤掉ggplot2调用中具有少量观察数据的子集?

例如,采取以下图表: qplot(price,data=diamonds,geom="density",colour=cut)

密度图

情节有点忙,我希望cut用少量的观察结果来排除这些值,即

> xtabs(~cut,diamonds)
cut
     Fair      Good Very Good   Premium     Ideal 
     1610      4906     12082     13791     21551
Run Code Online (Sandbox Code Playgroud)

FairGood所述的品质cut因子.

我想要一个可以适应任意数据集的解决方案,如果可能的话,不仅可以选择阈值数量的观测值,而且可以选择前3个.

koh*_*ske 11

ggplot(subset(diamonds, cut %in% arrange(count(diamonds, .(cut)), desc(freq))[1:3,]$cut),
  aes(price, colour=cut)) + 
  geom_density() + facet_grid(~cut)
Run Code Online (Sandbox Code Playgroud)
  1. count 将每个元素计入data.frame.
  2. arrange 根据指定的列命令data.frame.
  3. desc 启用逆序排序.
  4. 最后将其切割包含在前3中的行进行子集化%in%.