ak7*_*ak7 1 r histogram ggplot2
我正在学习R,并且尝试创建一个包含三个组的直方图的复合直方图,这三个直方图由数据帧中“群集”列的值定义。
数据如下所示:
TOTAL_Estimated_Collateral_value_sum cluster
1 -0.17499342 1
2 -0.86443362 1
3 0.22211949 2
4 0.01007717 1
5 -0.77617685 2
6 -1.43518056 1
7 -0.19705983 1
8 -0.39170108 1
9 -0.94073376 1
10 1.20525601 2
TOTAL_Estimated_Collateral_value_sum cluster
Min. :-1.7697 Min. :1.000
1st Qu.:-0.7626 1st Qu.:1.000
Median :-0.1322 Median :1.000
Mean : 0.0000 Mean :1.329
3rd Qu.: 0.8459 3rd Qu.:2.000
Max. : 1.8782 Max. :3.000
> table(df_all$cluster)
1 2 3
24342 8565 1350
Run Code Online (Sandbox Code Playgroud)
我使用的代码如下:
ggplot(df_all, aes(x=TOTAL_Estimated_Collateral_value_sum, color=cluster)) +
geom_histogram(alpha = 0.7, position="dodge")
Run Code Online (Sandbox Code Playgroud)
我得到的图像如下:
如您所见,观察结果并没有像我期望的那样被群集的值所着色。
您能否向我解释为什么会这样,我该怎么做才能修复我的代码并获得预期的输出?
您需要映射cluster到fill,而不是color,cluster如果尚未映射,则需要成为一个因素。因此,请尝试:
ggplot(df_all, aes(x=TOTAL_Estimated_Collateral_value_sum, fill=cluster)) +
geom_histogram(alpha = 0.7, position="dodge")
Run Code Online (Sandbox Code Playgroud)
或者,如果cluster不是一个因素:
ggplot(df_all, aes(x=TOTAL_Estimated_Collateral_value_sum, fill=as.factor(cluster))) +
geom_histogram(alpha = 0.7, position="dodge")
Run Code Online (Sandbox Code Playgroud)