我想从一个密度图上的两个独立数据框中绘制两个变量(“ red_variable”,“ green_variable”)的密度,并使用红色和绿色作为两个变量。
这是我的编码尝试:
library(ggplot2)
### Create dataframes
red_dataframe <- data.frame(red_variable = c(10,11,12,13,14))
green_dataframe <- data.frame(green_variable = c(6,7,8,9,10))
mean(red_dataframe$red_variable) # mean is 12
mean(green_dataframe$green_variable) # mean is 8
### Set colors
red_color= "#FF0000"
green_color= "#008000"
### Trying to plot densities with correct colors and correct legend entries
ggplot() +
geom_density(aes(x=red_variable,fill = red_color,alpha=0.5),data=red_dataframe) +
geom_density(aes(x=green_variable,fill = green_color,data=green_dataframe) +
scale_fill_manual(labels = c("Density of red_variable","Density of green_variable"),values = c(red_color,green_color)) +
xlab("X value") +
ylab("Density") +
labs(fill = "Legend") +
guides(alpha=FALSE)
结果:图例显示正确的颜色,但是绘图上的颜色是错误的:“红色”变量以绿色绘制,“绿色”变量以红色绘制。 x轴上的“绿色”密度(平均值= 8)应该出现在左侧,“红色”密度(平均值= 12)应该出现在右侧。剧情的这种行为对我来说毫无意义。
我实际上可以通过在代码中切换红色和绿色来获得所需的结果:
### load ggplot2
library(ggplot2)
### Create dataframes
red_dataframe <- data.frame(red_variable = c(10,green_color)) +
xlab("X value") +
ylab("Density") +
labs(fill = "Legend") +
guides(alpha=FALSE)
...虽然该图现在很有意义,但是代码没有意义。我真的不能相信代码会做与我期望的相反的事情。这是什么问题我是色盲吗?