使用 R 中的绘图可视化交叉表 - 更改颜色

Visualizing crosstab tables with a plot in R - changing colours

我在 R 中有以下代码,它是从 here 修改而来的,它绘制了一个交叉表 table:

#load ggplot2
library(ggplot2)                           

# Set up the vectors                           
xaxis <- c("A", "B")
yaxis <- c("A","B")

# Create the data frame
df <- expand.grid(xaxis, yaxis)
df$value <- c(120,5,30,200)    

#Plot the Data
g <- <- ggplot(df, aes(Var1, Var2)) + geom_point(aes(size = value), colour = "lightblue") + theme_bw() + xlab("") + ylab("") 
g + scale_size_continuous(range=c(10,30)) + geom_text(aes(label = value))

它生成右图,这很棒,但我希望自定义四个点的颜色,理想情况下左上角和右下角都是一种颜色,右上角和左下角是另一种颜色。

我试过使用:

+ scale_color_manual(values=c("blue","red","blue","red"))

但这似乎不起作用。有什么想法吗?

我建议您在数据框中按向量着色,因为您没有提供此列的列,您可以创建一个列,或根据现有列(我有下面完成):

g <- ggplot(df, aes(Var1, Var2)) + geom_point(aes(size = value, colour = (Var2!=Var1))) + theme_bw() + xlab("") + ylab("") 
g + scale_size_continuous(range=c(10,30)) + geom_text(aes(label = value))

重要的部分是:colour = (Var2!=Var1),请注意,我将其放在 geom_point[=12 的美学 (aes) 中=]

编辑:如果你想删除图例(你用总计注释图表,所以我猜你并不真的需要它),你可以添加:g + theme(legend.position="none")删除它