【发布时间】:2018-03-12 08:26:22
【问题描述】:
我正在尝试使用以下代码在 RMarkdown 上创建绘图,但由于某种原因,我绘制的线条变得像素化(见下文)。我似乎找不到解决方案,因为更改代码块的 dpi 没有奏效。
数据链接:https://catalog.data.gov/dataset/2013-cartographic-boundary-file-state-for-united-states-1-20000000
```{r}
library(nycflights13)
library(maps)
library(maptools)
library(rgdal)
usa <- readShapePoly(
"data/census_bureau/cb_2013_us_state_20m/cb_2013_us_state_20m.shp")
conterm <- usa[usa$STATEFP != "02" & usa$STATEFP != "15" & usa$STATEFP != "72",]
conterm_projected <- spTransform(conterm, CRS(conterm_proj4)
proj4string(conterm) <- CRS("+proj=longlat")
conterm_proj4 <- "+proj=aea +lat_1=29.5 +lat_2=45.5 +lon_0=97.2w"
sfo <- airports[airports$faa == "SFO",]
jfk <- airports[airports$faa == "JFK",]
latlon <- data.frame(lon=c(sfo$lon, jfk$lon), lat=c(sfo$lat, jfk$lat))
coordinates(latlon) <- c("lon", "lat")
proj4string(latlon) <- CRS("+proj=longlat")
latlon_projected <- spTransform(latlon, CRS(conterm_proj4))
par(mfrow=c(2,1), mar = rep(1,4))
plot(conterm, border="#cccccc", lwd=0.5, main = "Mercator Projection")
points(c(sfo$lon, jfk$lon), c(sfo$lat, jfk$lat), col="red", lwd=2, pch=19)
lines(c(sfo$lon, jfk$lon), c(sfo$lat, jfk$lat), col="red", lwd=2)
plot(conterm_projected, border="#cccccc", lwd=0.5, main = "Albers Projection")
points(latlon_projected@coords, col="red", lwd=2, pch=19)
lines(latlon_projected@coords, col="red", lwd=2)
```
这是上面代码的输出,注意像素化的红线
【问题讨论】:
-
你试过用 svg 代替 png 吗? (代码块选项中带有
dev = 'svg') -
@F.Privé 是的,我现在刚刚尝试过,但没有成功。虽然我可能把它弄错了。 ```{r, dev='svg'}
-
您介意发布一个可复制的示例吗?
-
@OttToomet 我已经对其进行了编辑,以包含我用来获取机场数据的包。整个集合都可以从我添加的包中重现。
-
fig.retina=2。这应该是最新 rmarkdown 中的默认设置,但请在块中试一试。
标签: r knitr r-markdown