r - 如何在线性模型的函​​数中使用色标填充背景?

标签 r colors ggplot2 scale data-visualization

我正在分析 Alberto Cairo 的“功能艺术”中的一个数据可视化示例(我向您推荐)

在那本书里,有这个例子

http://img546.imageshack.us/img546/8327/snap1026.png

我在 R 中尝试。在左下角的图表中(散点图)

我使用书中的数据,并使用 lm(efect ~ pop) 计算人口函数中的有效军队和人口+效应函数的预算

这里的问题是:如何使用色阶(渐变)绘制散点图的背景,其中颜色代表 BUDGET 的值?

之后,我想用预算的颜色来放置点(人口,效果)。
这样,我可以将国家预算与人口+效应函数中的估计预算进行比较

我知道基本的 R,我已经安装了 ggplot2 包裹

我想要一个类似于

enter image description here

但颜色正确。

谢谢你。

最佳答案

要获取背景,您可以使用 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)) 

要得到:

enter image description here

关于r - 如何在线性模型的函​​数中使用色标填充背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13221830/

相关文章:

r - 使用 ggplot2 绘制自举样本(多列)

r - 根据条件每行中第一次出现的位置

r - 根据多个行和列的多个条件比较时间戳

r - data.frame更新时自动打印消息

html - 我怎样才能让所有的问号,例如,在文本中,是某种颜色?

r - 向量化 R 表达式

r - 使用 stat_summary : summary range reaches zero 以对数刻度绘制数据

r - 如何在纵向数据中创建行/主题索引

algorithm - 将 RGB 转换为光频率

r - 设置热图的色阶