我正在分析 Alberto Cairo 的“功能艺术”中的一个数据可视化示例(我向您推荐)
在那本书里,有这个例子
我在 R 中尝试。在左下角的图表中(散点图)
我使用书中的数据,并使用 lm(efect ~ pop)
计算人口函数中的有效军队和人口+效应函数的预算
这里的问题是:如何使用色阶(渐变)绘制散点图的背景,其中颜色代表 BUDGET 的值?
之后,我想用预算的颜色来放置点(人口,效果)。
这样,我可以将国家预算与人口+效应函数中的估计预算进行比较
我知道基本的 R,我已经安装了 ggplot2 和 秤包裹
我想要一个类似于
但颜色正确。
谢谢你。
最佳答案
要获取背景,您可以使用 geom_raster
以获得你想要的效果。我将使用@GeekOnAcid 建议的相同数据集:
首先获取数据并拟合回归模型:
crime = read.csv("http://datasets.flowingdata.com/crimeRatesByState2005.tsv",
header=TRUE, sep="\t")
##Fit the regression model
m = lm(crime$burglary ~ crime$murder)
接下来我们为背景色创建一个网格:
##Create a grid for the background colour
x = seq(1, 10, length.out=100)
y = seq(400, 1200, length.out=100)
z = expand.grid(x,y)
现在我们需要一个渐变颜色的距离度量。我只是使用了距回归线的平方距离:
z$grad = (z[,2] - (398.3 + 62.2*z[,1]))^2
然后情节:
require(ggplot2)
ggplot(z) + geom_raster(aes(Var1, Var2, fill=grad)) +
geom_point(data=crime[1:15,], aes(murder, burglary, size=population),pch=1 ) +
geom_text(data=crime[1:15,],
aes(murder, burglary, label=state),
hjust=-0.2, size=4) +
scale_size_continuous(range=c(1,10)) +
scale_fill_continuous(high="red", low="white", trans="sqrt") +
xlab("Murder") + ylab("Burglary") +
guides(size=FALSE, fill=FALSE) +
scale_y_continuous(expand=c(0, 0)) +
scale_x_continuous(expand=c(0, 0))
要得到:
关于r - 如何在线性模型的函数中使用色标填充背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13221830/