小编jaz*_*rro的帖子

与ggplot2并排绘制

我想使用ggplot2包并排放置两个图,即相当于par(mfrow=c(1,2)).

例如,我希望以下两个图表以相同的比例并排显示.

x <- rnorm(100)
eps <- rnorm(100,0,.2)
qplot(x,3*x+eps)
qplot(x,2*x+eps)
Run Code Online (Sandbox Code Playgroud)

我需要将它们放在相同的data.frame中吗?

qplot(displ, hwy, data=mpg, facets = . ~ year) + geom_smooth()
Run Code Online (Sandbox Code Playgroud)

visualization r ggplot2

315
推荐指数
10
解决办法
33万
查看次数

基于逻辑条件的列表中的子集元素

如何根据另一个列表中的条件(TRUE,FALSE)对列表进行子集化?请看下面的例子:

l <- list(a=c(1,2,3), b=c(4,5,6,5), c=c(3,4,5,6))
l
$a
[1] 1 2 3

$b
[1] 4 5 6 5

$c
[1] 3 4 5 6

cond <- lapply(l, function(x) length(x) > 3)
cond
$a
[1] FALSE

$b
[1] TRUE

$c
[1] TRUE

> l[cond]
Run Code Online (Sandbox Code Playgroud)

l [cond]出错:无效的下标类型'list'

conditional r list

30
推荐指数
4
解决办法
4万
查看次数

获取具有指定边界坐标的地图

我想从R获得带有RgoogleMaps的地图,具有特定的坐标边界.

我可以调用的是GetMap,并指定一个中心,我必须添加一个缩放级别.一切都很好,除了我没有得到一个与我选择的坐标有界的图像地图.

这是一个例子:

lat <- c(44.49,44.5)                
lon <- c(11.33,11.36)               
center = c(mean(lat), mean(lon))    
zoom <- 14                          
mmap <- GetMap(center = center, zoom=zoom, maptype= "satellite", destfile = "m.png") 
Run Code Online (Sandbox Code Playgroud)

问题是只有中心作为参数传递,因此我看到的整个图像取决于缩放级别.所以,我无法理解我得到的图像的边界是什么.我想要做的是使用我定义的坐标精确限制图像.这是可能的(还有其他地图包)吗?

google-maps r ggplot2 rgooglemaps ggmap

18
推荐指数
2
解决办法
2万
查看次数

dplyr中每组的r cumsum

我开始享受,dplyr但我被困在一个用例.我希望能够cumsum在包中的数据框中应用每个组,但我似乎无法做到正确.

对于演示数据帧,我生成了以下数据:

set.seed(123)

len = 10 
dates = as.Date('2014-01-01') + 1:len
grp_a = data.frame(dates=dates, group='A', sales=rnorm(len))
grp_b = data.frame(dates=dates, group='B', sales=rnorm(len))
grp_c = data.frame(dates=dates, group='C', sales=rnorm(len))
df = rbind(grp_a, grp_b, grp_c)
Run Code Online (Sandbox Code Playgroud)

这会创建一个如下所示的数据框:

        dates group       sales
1  2014-01-02     A -0.56047565
2  2014-01-03     A -0.23017749
3  2014-01-04     A  1.55870831
4  2014-01-05     A  0.07050839
5  2014-01-06     A  0.12928774
6  2014-01-02     B  1.71506499
7  2014-01-03     B  0.46091621
8  2014-01-04     B -1.26506123
9  2014-01-05     B -0.68685285
10 2014-01-06     B -0.44566197
11 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 dplyr

18
推荐指数
2
解决办法
2万
查看次数

有没有办法为ggmap添加比例尺(线性距离)?

并不是说这对我的问题至关重要,但这是我的情节示例,我想在其上添加一个比例尺.

ggmap(get_map(location = "Kinston, NC", zoom = 12, maptype = 'hybrid')) +
geom_point(x = -77.61198, y = 35.227792, colour = "red", size = 5) +
geom_point(x = -77.57306, y = 35.30288, colour = "blue", size = 3) +
geom_point(x = -77.543, y = 35.196, colour = "blue", size = 3) +
geom_text(x = -77.575, y = 35.297, label = "CRONOS Data") +
geom_text(x = -77.54, y = 35.19, label = "NOAA") +
geom_text(x = -77.61, y = 35.22, label = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 ggmap

17
推荐指数
2
解决办法
3916
查看次数

美国宇航局瓷砖与R的传单

我想请一些关于传单包的帮助.绘制交互式地图时,您可以执行此类操作.

library(leaflet)
library(magrittr)

m <- leaflet() %>% 
     setView(lng = -71.0589, lat = 42.3601, zoom = 8) %>%
     addTiles() 

m
Run Code Online (Sandbox Code Playgroud)

如果您想添加第三方磁贴,也可以这样做.以下链接提供第三方磁贴的选项(http://leaflet-extras.github.io/leaflet-providers/preview/index.html)创建以下图像OpenWeatherMap.Precipitation.

### They work
m %>% addProviderTiles("MtbMap")
m %>% addProviderTiles("HikeBike.HikeBike")
m %>% addProviderTiles("OpenWeatherMap.Precipitation")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

链接中的一些图块选项包括NASA的图块.我想用其中一个.所以我尝试了以下代码.不幸的是,他们都没有工作.

### The default map appears, then a black layer appears on top of the default layer.
m %>% addProviderTiles("NASAGIBS.ModisTerraTRUEColorCR")
m %>% addProviderTiles("NASAGIBS.ModisTerraBands367CR")
Run Code Online (Sandbox Code Playgroud)

唯一可行的选择如下.

m %>% addProviderTiles("NASAGIBS.ViirsEarthAtNight2012")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我的下一次尝试是使用自定义URL模板addTiles().该URL来自上面的链接.但是,这也没有成功; 没有出现错误消息,但瓷砖没有变化.

m %>%addTiles(urlTemplate = "http://map1.vis.earthdata.nasa.gov/wmts-webmerc/MODIS_Terra_CorrectedReflectance_Bands367/default/{time}/{tilematrixset}{maxZoom}/{z}/{y}/{x}.{format}",
              tileOptions(minZoom = 1, maxZoom = 8))
Run Code Online (Sandbox Code Playgroud)

我最后的尝试如下.这显示了默认地图,但是没有出现额外的图块.

leaflet() %>% …
Run Code Online (Sandbox Code Playgroud)

r leaflet

12
推荐指数
1
解决办法
2363
查看次数

sliderInput表示日期

我正在使用animationOptionsin 制作动画sliderInput().我想在滑块中使用日期/日期范围,但sliderInput()不接受日期.闪亮组中有一个帖子.截至2013年3月,还没有解决方案.所以我四处搜索并了解到可以使用JavaScript实现这一目标.这是帖子.不幸的是,我不能用JS写.所以,我搜索了更多,并想出了这个链接并编写了以下代码.这有效,但滑块上的数字令人困惑.这是一个可以移动并使用日期的唯一方法sliderInput()吗?非常感谢您抽出宝贵时间.

server.R

library(shiny)

shinyServer(function(input, output, session) {


observe({
    updateDateInput(session, "ana", value = as.Date("2014-07-01") + input$foo)
})

output$preImage <- renderImage({


filename <- normalizePath(file.path('./www',
                          paste(input$ana, '.png', sep='')))

list(src = filename,
     alt = paste("There is no image for ", input$ana, ".", sep = ""))

}, deleteFile = FALSE)

})
Run Code Online (Sandbox Code Playgroud)

ui.R

shinyUI(pageWithSidebar(

    headerPanel("renderImage example"),

sidebarPanel(

    sliderInput("foo", "Animation duration", min = -30,
                max = 30, value = 0, step = …
Run Code Online (Sandbox Code Playgroud)

r shiny

11
推荐指数
2
解决办法
1万
查看次数

带有不同线型和标记的ggplot线图

我正在尝试在ggplot2中创建一个线图,它结合了一些变量的不同线型和其他变量的不同标记.

示例1使用不同的线型绘制每个变量,使用不同的标记绘制每个变量的示例2,以及使用不同的线和标记的示例3的图.

我试图用不同的线条样式(实线,虚线)绘制X2和X3,然后将X4和X5绘制成具有不同标记的实线(圆形,方形,等等).

有没有办法做到这一点?

library(ggplot2)
library(reshape2)

set.seed <- 1
df <- data.frame(cbind(seq(1,10,1),matrix(rnorm(100,1,20), 10, 4)))
d <- melt(df, id="X1")

# Example 1: different line styles
ggplot(d, aes(x=X1, y=value, color=variable)) + 
  geom_line(aes(linetype=variable), size=1)

# Example 2: different markers for each line
ggplot(d, aes(x=X1, y=value, color=variable)) + 
  geom_line() + geom_point(aes(shape=variable, size=4))

# Example 3: differnt line styles & different markers (You see this graph below)
ggplot(d, aes(x=X1, y=value, color=variable)) + 
  geom_line(aes(linetype=variable), size=1) +
  geom_point(aes(shape=variable, size=4))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

11
推荐指数
1
解决办法
2万
查看次数

热图使用ggmap按值绘制

我试图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 ggplot2 ggmap

11
推荐指数
1
解决办法
9730
查看次数

在ggmap中添加一个圆圈

我们假设我使用ggmap包生成伦敦地图:

library(ggmap)
library(mapproj)

map <- get_map(location = "London", zoom = 11, maptype = "satellite")

p <- ggmap(map)+ 
     theme(legend.position = "none") 

print(p)
Run Code Online (Sandbox Code Playgroud)

现在我想在这个图中添加一个带有一些中心坐标的圆(比方说:lon = -0.1,lat = 52.23)和半径,例如以公里为单位.我尝试使用类似问题的解决方案(用ggplot2绘制一个圆圈),你可以在这里添加一个这样的语句:

p <- p + annotate("path",
                  x = xc+r*cos(seq(0,2*pi,length.out=100)),
                  y = yc+r*sin(seq(0,2*pi,length.out=100)))
Run Code Online (Sandbox Code Playgroud)

它有效,但由于规模不同,圆圈实际上不是圆形.是否可以正确绘制它?任何帮助,将不胜感激!

编辑:我找到了使用不同包的解决方案(https://gis.stackexchange.com/questions/119736/ggmap-create-circle-symbol-where-radius-represents-distance-miles-or-km),输出结果是正确.不过,如果有人知道如何使用ggmap,请分享它.

google-maps r data-analysis ggplot2 ggmap

10
推荐指数
1
解决办法
1525
查看次数