我看到了一些类似的问题,我试图自己解决,但我不能.这是我的问题:
我必须加载一个isfar.RData文件,以便在其他计算中使用它(这里描述并不重要).我想简单地看一下这个isfar.RData文件中的数据,例如它携带的数字,列和行.
首先我加载我的文件:
isfar<-load("C:/Users/isfar.RData")
Run Code Online (Sandbox Code Playgroud)
当我尝试通过ls()函数获取此信息(我正在使用Rcmdr)或在加载后在开头标记isfar时我进入输出窗口:[1]"isfar"而不是表.为什么?
非常感谢,我感谢所有的答案!希望我能够理解我所写的内容,我不是母语.
我有在美国切萨皮克湾不同地点拍摄的物种丰富度的调查数据,我想以图形方式将数据显示为"热图".
我有一个lat/long坐标和丰富度值的数据框,我将其转换为a SpatialPointsDataFrame并使用autoKrige()automap包中的函数生成插值.
首先,任何人都可以评论我是否正确实现了该autoKrige()功能?
其次,我无法绘制数据并覆盖该地区的地图.或者,我可以指定插值网格来反映Bay的边界(如此处所示)吗?关于我如何做到这一点以及我可能从哪里得到这些信息的任何想法?提供网格autoKrige()看起来很容易.
编辑:感谢Paul的超级有用的帖子!这就是我现在拥有的.无法让ggplot接受插值数据和地图投影:
require(rgdal)
require(automap)
#Generate lat/long coordinates and richness data
set.seed(6)
df=data.frame(
lat=sample(seq(36.9,39.3,by=0.01),100,rep=T),
long=sample(seq(-76.5,-76,by=0.01),100,rep=T),
fd=runif(10,0,10))
initial.df=df
#Convert dataframe into SpatialPointsDataFrame
coordinates(df)=~long+lat
#Project latlong coordinates onto an ellipse
proj4string(df)="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"
#+proj = the type of projection (lat/long)
#+ellps and +datum = the irregularity in the ellipse represented by planet earth
#Transform the projection into Euclidean distances
project_df=spTransform(df, CRS("+proj=merc +zone=18s +ellps=WGS84 +datum=WGS84")) #projInfo(type="proj")
#Perform the interpolation using …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ggplot2来平滑一些数据.感谢@MrFlick和@hrbrmstr,我已经取得了很大的进步,但是在我需要列出的状态上遇到"渐变"效果时遇到了问题.
这是一个例子,让您了解我正在寻找的东西:
****这正是我想要实现的目标.
http://nrelscience.org/2013/05/30/this-is-how-i-did-it-mapping-in-r-with-ggplot2/
(1)如何利用我的数据充分利用ggplot2?
(2)是否有更好的方法来实现梯度效应?
我希望从这个奖励中获得的目标是:
(1)插入数据以构建栅格对象,然后使用ggplot2进行绘图
(或者,如果可以使用当前绘图进行更多操作并且栅格对象不是一个好策略)
(2)用ggplot2构建一个更好的地图
我一直在玩很多这些不同的情节,但我仍然对结果不满意有两个原因:(1)渐变并不像我想的那么多; (2)演示文稿可以改进,但我不知道该怎么做.
正如@hrbrmstr指出的那样,如果我对数据进行插值以产生更多数据,然后将它们放入栅格对象并使用ggplot2进行绘图,则可能会提供更好的结果.我认为这是我应该追求的,但我不知道如何根据我的数据做到这一点.
我在下面列出了我迄今为止所做的代码和结果.我真的很感激这方面的任何帮助.谢谢.
这是两个数据集:
(1)完整数据集(175 mb):PRISM_1895_db_all.csv(不可用)
https://www.dropbox.com/s/uglvwufcr6e9oo6/PRISM_1895_db_all.csv?dl=0
(2)部分数据集(14 mb):PRISM_1895_db.csv(不可用)
https://www.dropbox.com/s/0evuvrlm49ab9up/PRISM_1895_db.csv?dl=0
***编辑:对于那些感兴趣的人,数据集不可用,但我在我的网站上发了一篇文章,将这段代码与加州数据的一部分联系起来http://johnwoodill.com/pages/r-code html的
PRISM_1895_db <- read.csv("/.../PRISM_1895_db.csv")
regions<- c("north dakota","south dakota","nebraska","kansas","oklahoma","texas","minnesota","iowa","missouri","arkansas", "illinois", "indiana", "wisconsin")
ggplot() +
geom_polygon(data=subset(map_data("state"), region %in% regions), aes(x=long, y=lat, group=group)) +
geom_point(data = PRISM_1895_db, aes(x = longitude, y = latitude, color = APPT), alpha = .5, size = 5) +
geom_polygon(data=subset(map_data("state"), region %in% regions), aes(x=long, y=lat, group=group), color="white", fill=NA) …Run Code Online (Sandbox Code Playgroud) 我试图ggmap通过学校来看待教育成绩.我创建了所有学校的坐标列表和个别学生的分数如下:
score lat lon
3205 45 28.04096 -82.54980
8275 60 27.32163 -80.37673
4645 38 27.45734 -82.52599
8962 98 26.54113 -81.84399
9199 98 27.88948 -82.31770
340 53 26.36528 -81.79639
Run Code Online (Sandbox Code Playgroud)
我首先使用了我参与的大多数教程中的模式:http : //journal.r-project.org/archive/2013-1/kahle-wickham.pdf http://www.geo.ut.ee/ AASA/LOOM02331/heatmap_in_R.html
library(ggmap)
library(RColorBrewer)
MyMap <- get_map(location = "Orlando, FL",
source = "google", maptype = "roadmap", crop = FALSE, zoom = 7)
YlOrBr <- c("#FFFFD4", "#FED98E", "#FE9929", "#D95F0E", "#993404")
ggmap(MyMap) +
stat_density2d(data = s_rit, aes(x = lon, y = lat, fill = ..level.., alpha = ..level..), …Run Code Online (Sandbox Code Playgroud) 对不起文本墙,但我解释了问题,包括数据,并提供一些代码:)
题:
我有一些气候数据,我想用R绘图.我正在使用不规则的277x349网格上的数据,其中(x =经度,y =纬度,z =观察).假设z是压力的量度(500 hPa高度(m)).我尝试使用包ggplot2在地图上绘制轮廓(或等压线),但由于数据的结构,我遇到了一些麻烦.
数据来自兰伯特共形投影上的规则,均匀间隔的277x349网格,对于每个网格点,我们具有实际的经度,纬度和压力测量值.它是投影上的常规网格,但如果我使用记录观测值的实际经度和纬度将数据绘制为地图上的点,我会得到以下结果:

我可以通过将最右边的部分向左翻译来使它看起来更好一点(也许这可以通过一些功能完成,但我手动完成)或忽略最右边的部分.这是右图翻译成左边的情节:

(旁边)为了好玩,我尽力重新应用原始投影.我有一些从数据源应用投影的参数,但我不知道这些参数是什么意思.另外,我不知道R如何处理投影(我确实阅读了帮助文件...),所以这个图是通过一些试验和错误产生的:

我尝试使用ggplot2中的geom_contour函数添加轮廓线,但它冻结了我的R.在对一小部分数据进行尝试之后,我发现在谷歌搜索之后ggplot抱怨因为数据是不规则的网格.我也发现这就是geom_tile无法正常工作的原因.我猜我必须使我的网格点均匀分布 - 可能是通过将其投影回原始投影(?),或者通过采样规则网格(?)或通过点之间的外推均匀地间隔我的数据(?).
我的问题是:
如何在地图上绘制轮廓(最好使用ggplot2)来绘制数据?
奖金问题:
如何将我的数据转换回Lambert共形投影上的常规网格?根据数据文件的投影的参数包括(mpLambertParallel1F = 50,mpLambertParallel2F = 50,mpLambertMeridianF = 253,角,La1 = 1,Lo1 = 214.5,Lov = 253).我不知道这些是什么.
如何将我的地图居中,以便不会剪切一侧(如第一张地图中)?
如何使地图的投影图看起来不错(没有不必要的地图部分)?我尝试调整xlim和ylim,但似乎在投影前应用了轴限制.
数据:
我将数据作为rds文件上传到Google云端硬盘上.您可以使用R中的readRDS函数读取文件.
lat2d:2d网格上观测的实际纬度
lon2d:2d网格上观测的实际经度
z500:观察到的高度(m),其中压力为500毫巴
dat:数据排列在一个漂亮的数据框中(对于ggplot2)
我被告知数据来自北美区域再分析数据库.
我的代码(远期):
library(ggplot2)
library(ggmap)
library(maps)
library(mapdata)
library(maptools)
gpclibPermit()
library(mapproj)
lat2d <- readRDS('lat2d.rds')
lon2d <- readRDS('lon2d.rds')
z500 <- readRDS('z500.rds')
dat <- readRDS('dat.rds')
# Get the map outlines
outlines <- as.data.frame(map("world", plot = FALSE,
xlim = c(min(lon2d), max(lon2d)),
ylim …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 lon-lat 数据集绘制空间图。按照/sf/answers/1353776441/ 中的示例,我几乎可以获得所需的结果

这是使用的代码(大部分来自之前引用的问题)
library(rgdal)
library(ggplot)
# read province limits
CV = readOGR(dsn=".", layer="poligonos_provincia_etrs89")
CV.pr=subset(CV, CV$CODINE == "46" | CV$CODINE == "12" | CV$CODINE == "03" )
# convert object to data.frame
CV2 <- fortify(CV.pr)
# read spatial data
datos.uvi=read.csv("salida-mapa-036.dat",sep=",",header=T,na.strings="-99.9")
uvi.temp<-datos.uvi[,c("longitud","latitud","RGlobal")]
colnames(uvi.temp)<-c("long","lat","RGlobal")
# plot map
ggplot() +
geom_tile(data = uvi.temp, aes(x = long, y = lat, z = RGlobal, fill = RGlobal), alpha = 0.4) +
stat_contour(data = uvi.temp, aes(x = long, y = lat, z = …Run Code Online (Sandbox Code Playgroud) 所以我有一张地图正在绘制加泰罗尼亚的气压:
这是一个特写:
我现在想要选择气压高于97 kPa(深蓝色)的所有观测值,并创建一个新的数据框用于进一步分析.这是棘手的一点,我想选择符合高度过滤器AAAAND的观测沿着地中海沿岸.大多数97 kPa以上的观测位于地中海沿岸,但有一些异常值位于内陆.
最后,我想某种对角线纬度,经度过滤必须发生,但我不知道如何指定它.是否有某种方式来绘制,或在数据上绘制多边形然后让它选择内部的所有内容?
这是我的数据:
structure(list(final.Latitude = c(42.161626, 41.516819, 41.786856,
41.748215, 42.393932, 41.767667, 41.938401, 41.494079, 41.752819,
41.422327, 41.253914, 42.104854, 40.544337, 41.647625, 41.26267,
40.745573, 40.881084, 41.201499, 41.494183, 40.873663, 41.211076,
41.814818, 41.737032, 42.434746, 41.796036, 41.197585, 42.119308,
41.665698, 41.141899, 40.883885, 40.814408, 40.710754, 41.65649,
41.541525, 41.581905, 41.61424, 42.215454, 41.137955, 41.553355,
42.17195, 40.909931, 42.757417, 41.89469, 41.49472, 41.447145,
41.791172, 41.862813, 41.677615, 41.398371, 41.094337, 42.83454,
41.331905, 41.954854, 41.560246, 41.758456, 41.516953, 41.625954,
40.974225, 42.098215, 42.238615, 41.841862, 41.280658, 41.491805,
41.675766, 42.416667, 41.220308, 42.043361, 41.009161, 41.136268,
41.747716, 41.816881, …Run Code Online (Sandbox Code Playgroud) 我试图在rscript中加载.Rdata文件来操纵数据等.
当我在R console int中执行此操作时:
load("R.RData")
x<-Data ##Data is the object in R.data file
Run Code Online (Sandbox Code Playgroud)
但是当我把它放在脚本中时,我会收到错误:
object of type 'environment' is not subsettable
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有一个矩阵:
mat<-matrix(data=1:30,ncol=10,nrow=3)
Run Code Online (Sandbox Code Playgroud)
我想将此保存到Rdata:
save(mat, file="m.Rdata")
Run Code Online (Sandbox Code Playgroud)
然后加载回来:
m<-load("m.Rdata")
Run Code Online (Sandbox Code Playgroud)
然后看看它的内容:
m
[1] "mat"
Run Code Online (Sandbox Code Playgroud)
它显示的全部是保存的矩阵的名称,但值丢失.
我究竟做错了什么?
也
一旦我保存了矩阵,我想创建一个新的矩阵:
mat2<-matrix(data=30:59,ncol=10,nrow=3)
Run Code Online (Sandbox Code Playgroud)
我想将此mat2保存到相同的Rdata文件中,正确的程序是什么?