从tmap库中运行示例代码:
library("tmap")
tmap_mode("plot")
data(NLD_muni)
tm_shape(NLD_muni) +
tm_borders() +
tm_bubbles(size = c("origin_native", "origin_non_west"), legend.size.is.portrait = TRUE)
Run Code Online (Sandbox Code Playgroud)
给我以下地图
所有的工作都像宣传的那样,但是我试图强制tmap在两个地图上使用相同的气泡尺寸..并且只绘制一个图例.怎么可能实现?
我试图在R中得到一个凸面的点特征.
library(tmap)
library(sf)
nc <- st_centroid(st_read(system.file("shape/nc.shp", package="sf")))
qtm(nc)
ch <- st_convex_hull(nc)
qtm(ch)
identical(nc, ch)
Run Code Online (Sandbox Code Playgroud)
我希望st_convex_hull包含凸壳的多边形.但是它会返回不相同的点.我怎样才能获得多边形?
基于我之前的问题,我想在图的另一侧添加第二个轴标签.
数据框看起来像:
test <- structure(list(characteristic = structure(c(1L, 2L, 3L, 1L, 2L
), .Label = c("Factor1", "Factor2", "Factor3"), class = "factor"),
es = c(1.2, 1.4, 1.6, 1.3, 1.5), ci_low = c(1.1, 1.3, 1.5,
1.2, 1.4), ci_upp = c(1.3, 1.5, 1.7, 1.4, 1.6), label = structure(c(1L,
3L, 5L, 2L, 4L), .Label = c("1.2 (1.1, 1.3)", "1.3 (1.2, 1.4)",
"1.4 (1.3, 1.5)", "1.5 (1.4, 1.6)", "1.6 (1.5, 1.7)"), class = "factor"),
set = structure(c(1L, 1L, 1L, 2L, 2L), .Label = c("H", …Run Code Online (Sandbox Code Playgroud) 我正在处理描述具有开始和结束时间的事件的数据.例如,它可以是以下形式:
我想这个数据转换成一种形式,我可以为了能够回答的有多少事件的发生问题计数定期事件的发生13:15:00,以13:29:59和13:30:00对13:45:00等.在上面的示例中,第二个记录可以简单地使用开始时间计入第一个时段,但在第二个常规时间间隔内不会被计为"正在进行",即使结束了结束时间.
为了以15分钟的间隔工作,我提出了一个笨拙的解决方案,用于在24小时内tidyr::uncount将数据集"扩展"到24*4=9615分钟,然后过滤指定间隔内的数据集.
library(tidyverse)
library(lubridate)
library(magrittr)
df1 <- tibble::tibble(
id = c(1, 2),
start_date = c(ymd_hms("2018-12-10 14:45:51", tz = "Australia/Brisbane"),
ymd_hms("2018-12-10 13:29:37", tz = "Australia/Brisbane")),
end_date = c(ymd_hms("2018-12-10 14:59:04", tz = "Australia/Brisbane"),
ymd_hms("2018-12-10 14:02:37", tz = "Australia/Brisbane")))
df2 <- df1 %>%
mutate(episode = 96) %>%
tidyr::uncount(episode, .id = "sequence")
df2$int_start <- rep(
seq(ymd_hms("2018-12-10 00:00:00", tz = "Australia/Brisbane"),
ymd_hms("2018-12-10 23:59:59", tz = "Australia/Brisbane"),
by = "15 mins"),
2)
df2$int_end …Run Code Online (Sandbox Code Playgroud) 我正在努力制作一个变量在ggplot中的一个因子的比例图.
以mtcars数据为例,从这个问题中窃取解决方案的一部分,我可以想出来
ggplot(mtcars, aes(x = as.factor(cyl))) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(labels = percent_format())
Run Code Online (Sandbox Code Playgroud)
该图表给出cyl了整个数据集中每个类别的比例.
我想得到的是每个cyl类别中具有自动变速器(二进制变量am)的汽车比例.
在每个栏的顶部,我想为比例添加一个错误栏.
是否有可能ggplot只与它一起做?或者我是否必须首先准备带有摘要的数据框并将其与identity条形图选项一起使用?
我在Cookbook for R网页上找到了一些例子,但它们处理的是连续的y变量.
我在R中有一个带有POSIXct变量sessionstarttime的数据框.每行由指定位置的整数ID变量标识.每个位置的行数不同.我简单地绘制整体图:
myplot <- ggplot(bigMAC, aes(x = sessionstarttime)) + geom_freqpoly()
Run Code Online (Sandbox Code Playgroud)
是否可以创建一个循环,分别为每个位置创建和保存这样的图?
文件名最好与ID变量的值相同吗?
并且最好每个情节具有相同的时间尺度?
我正在试图找出如何在R中执行(如此简单的GIS)操作的方法.
让我们从spdep包中获取一些示例多边形数据集
library("spdep")
c <- readShapePoly(system.file("etc/shapes/columbus.shp", package="spdep")[1])
plot(c)
Run Code Online (Sandbox Code Playgroud)
我已经设法弄清楚我可以使用逻辑语句选择多边形subset.例如:
cc < - subset(c,c @ data $ POLYID <5)plot(cc)
现在,让我们假设我有另一个数据框,我想加入我的空间数据:
POLYID=1:9
TO.LINK =101:109
link.data <- data.frame(POLYID=POLYID, TO.LINK=TO.LINK)
Run Code Online (Sandbox Code Playgroud)
使用这两个数据集,我如何获得两个空间数据框:
我怎么能达到这一点?
我正在处理Rnw我knit进入pdf报告的文件。
到目前为止一切顺利,但我的报告由相当多的数字和地图组成。
所以现在出现的问题是报告的最终版本超过200MB,分享起来很痛苦。我相信这主要是由包含的矢量 (pdf) 图形引起的。
是否有任何解决方案/策略来减少如此大的报告的大小?
基本图形,一些虚拟数据说明我的情况:
dat <- rnorm(n = 1000, m = 0, sd = 1)
hist(dat, breaks = 5, labels = TRUE, freq = TRUE, main = "Title")
Run Code Online (Sandbox Code Playgroud)
我添加了垃圾箱的标签。现在,我想更改它们的大小。我知道cex参数可以做很多事情:
hist(dat, breaks=5, labels = TRUE, freq = TRUE, main = "Title", cex.main = 0.5)
Run Code Online (Sandbox Code Playgroud)
但是,它似乎无法处理条形标签。
有什么解决办法吗?