我有一个数据帧说df1的2列grp和bin

grp     bin
============
1       [0-100]
1       [101-200]
1       [101-200]
1       [201-300]
2       [301-400]
2       [301-400]
2       [401-500]
3       [401-500]
3       [401-500]
3       [501-600]

我想将这个数据帧分成3组,并使用ggplot绘制每组中的bin频率 . 基本上我想要3个直方图(即每组一个),显示如下的bin频率

grp     bin       Hist freq
============================
1      [0-100]     1
1      [101-200]   2
2      [301-400]   2

我试图分割数据帧,然后绘制每个组的直方图,如下所示

x <- split(df1,as.factor(df1$grp))
plothist <-function(pl) {ggplot(pl,aes(x=bin))+ geom_histogram()}
lapply(x,plothist)

它无法正常工作,我收到的错误如下:

.Call.graphics中的错误(C_palette2,.Call(C_palette2,NULL)):无效的图形状态

我也希望每个bin栏都有不同的颜色 .

我该怎么做 ?