我在R中有以下代码,它是从here修改的,它绘制了一个交叉表:
#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"))
但这似乎不起作用。有什么想法吗?
答案 0 :(得分:0)
我建议您按数据框中的向量进行着色,因为您没有可以提供此功能的列,您可以创建一个,也可以根据现有列创建规则(我在下面做过) ):
lapply(1:10, function(i) t(x[i,]) %*% sigma %*% x[i,])
重要的部分是: color =(Var2!= Var1),请注意我把它放在geom_point的美学(aes)中
编辑:如果你想删除图例(你用图标注释图表,所以我猜你真的不需要它),你可以添加: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))
来删除它