我的地震气泡图 [英] Bubble plot of mine quakes
问题描述
在 R 中,我希望创建一个类似于下面的热图.其中尺寸代表能量排出,颜色代表深度.
In R I am looking to create a heatmap similar to the one below. Where size represents energy expelled and color represents depth.
我的数据集 (CSV) 如下所示:
My dataset (CSV) looks something like this:
X, Y, Z, E
19305, -11211, -599, 3000
22159, -13553, -600, 300
22155, -13519, -823, 2000
... ... ... ...
其中 X、Y 和Z 是轴,E 是能量.
Where X, Y & Z are axes and E is energy.
过去几个小时我一直在玩 R,但无法完成我的目标.如果可能,请提供示例代码.
I have spent the past couple hours playing with R but unable to accomplish what I have set out to. Please provide sample code if possible.
谢谢!
推荐答案
更新以使用更有意义的数据.原始回复在底部.
Updated to use more meaningful data. The original response is at the bottom.
这张地图...
... 可以使用以下代码生成:
... can be produced with the following code:
library(ggplot2)
library(maptools)
# grab earthquake data [source: USGS Earthquake Hazards Program]
url <- "http://comcat.cr.usgs.gov/fdsnws/event/1/query"
querystring <- "starttime=2012-01-01T00:00:00Z"
querystring <- paste(querystring,"minmagnitude=6", sep="&") # magnitude >= 6
querystring <- paste(querystring,"mindepth=0", sep="&")
querystring <- paste(querystring,"maxdepth=1000", sep="&") # depth <= 1000 km
querystring <- paste(querystring,"format=csv", sep="&") # return CSV file
uri <- paste(url,querystring,sep="?")
ggQuakes <- read.table(header=T,sep=",", file=uri)
# grab world map [built into maptools package]
ggMap <- fortify(wrld_simpl)
# create map payers
ggp <- ggplot(ggQuakes)
ggp <- ggp + geom_point(aes(x=longitude ,y=latitude ,color=depth ,size=mag), alpha=0.8)
ggp <- ggp + scale_size(range=c(4,8))
ggp <- ggp + scale_color_gradient(low="#aaaaaa", high="#cc0000")
ggp <- ggp + geom_path(data=ggMap, aes(x=long, y=lat, group=group))
ggp <- ggp + coord_equal()
ggp <- ggp + theme(legend.position="bottom")
# render map
print(ggp)
原始回复:
如果你提供更具代表性的样本数据会更好,但调用你的数据集gg
,
It would be better if you provided more representative sample data, but calling your dataset gg
,
library(ggplot)
ggplot(gg) +
geom_point(aes(x=X,y=Y,color=Z,size=log(E)), alpha=0.5) +
scale_size(range=c(4,8)) + # sets minimum and maximum size
scale_color_gradient(low="#aaaaaa", high="#cc0000")
我使用了对数(能量)量表,因为水平是如此不同.
I used a log (Energy) scale because the levels are so different.
这篇关于我的地震气泡图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!