使用 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")
删除它
我在 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")
删除它