小编Ari*_*Ari的帖子

使用ggplot2和ggmap在R中制作邮政编码等值线

我试图弄清楚非常简单的数据,这是一种痛苦的问题.我在美国东部有以下邮政编码.这是由数据组成,但你明白了.

Zip    Freq
11101    10
10014    15
11238   400
Run Code Online (Sandbox Code Playgroud)

大约100行.Freq的值范围为0-1000,这些是我想用来确定每个邮政编码颜色的值.理想情况下,我也希望地图能够集中在美国东部而不是整个国家.

我想用这些数据和每个邮政编码制作一个等值线,但我无法弄清楚如何导入邮政编码shapefile.我已经尝试过这个教程,但是我在fortify()步骤中遇到了一个错误,我无法超越.我不确定该教程的方法是否是最好的方法.

ggplot2似乎来自州和县,但我无法弄清楚如何通过邮政编码进行映射.(最终我将通过人口普查区进行映射,但现在我只想学习如何使用shapefile来获取邮政编码和这个简单的数据集)

我为choroplethr找到的所有资源都使用了现已弃用的函数.我花了几个小时追逐我的尾巴,努力使用它,我非常沮丧,所以任何帮助将不胜感激.

r ggplot2 ggmap choropleth choroplethr

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

如何使小标题显示有效数字

我正在处理具有有效数字(即“.”之后的数字)的数据。当将我的数据作为基础 R 中的变量查看时,以及将数据存储在数据帧中时,这些数字都会出现。但是,当我以小标题查看数据时,它们不会出现。

我需要为我的工作查看这些有效数字。有没有办法让它们在使用 tibbles 时出现?

这是一个可重现的示例:

x 有 5 位有效数字,使用基数 R 时显示 3 位:

x = 1234.56789
x
[1] 1234.568
Run Code Online (Sandbox Code Playgroud)

在 data.frame 中,还会显示 3 位有效数字:

df = data.frame(x=x)
df
         x
1 1234.568
Run Code Online (Sandbox Code Playgroud)

但是,在 tibble 中,会显示 0 位有效数字:

library(tibble)
df = tibble(x=x)
df
# A tibble: 1 x 1
      x
  <dbl>
1 1235.
Run Code Online (Sandbox Code Playgroud)

同样,我正在寻找一种方法,可以在查看我的数据时显示多于 0 的有效数字。

这是我的结果sessionInfo()

R version 3.5.1 (2018-07-02)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.6

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib

locale: …
Run Code Online (Sandbox Code Playgroud)

r tibble

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

在世界地图上叠加多个河图(Sankey图)

下面的迷人图表是经济学人,2016年1月30日,第61页.它描绘了从五个地区到六个地区的液化天然气(LNG)出口.R如何绘制类似于它的东西,也许有几个Sankey图(从包中riverplots)但箭头反转,如图所示的箭头?这意味着,流入出口地区的流量将显示为流出.

经济学家地图与流量

通过眼球从图中提取数据导致df数据帧.变量有奇怪的名称,因为`riverplot需要唯一的节点名称.

> dput(df)
structure(list(ID = structure(c(1L, 6L, 9L, 13L, 2L, 7L, 14L, 
3L, 10L, 15L, 4L, 11L, 5L, 8L, 12L, 16L), .Label = c("Africa-Asia", 
"Africa-Europe", "Africa-Nam", "Africa-SE", "Africa-SthAm", "Europe-Asia", 
"Europe-Europe", "Europe-SthAm", "MidEast-Asia", "MidEast-NthAm", 
"MidEast-SE", "MidEast-SthAm", "SE Asia-Asia", "Sth Am.-Eur", 
"Sth Am.-NthAm", "Sth Am.-SthAm"), class = "factor"), x = c(-30, 
1, 20, 100, -30, 1, -100, -30, 20, -100, -30, 20, -30, 1, 20, 
-100), y = c(120, 120, 120, 120, 1, 1, 1, -120, -120, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 sankey-diagram choropleth choroplethr

7
推荐指数
1
解决办法
905
查看次数

阿拉斯加和夏威夷没有正确格式化R的County Choropleth Map

我试图将美国的等值线图格式化为特定的颜色,不幸的是,当scale_fill_brewer用于改变颜色时; 只有48个州(夏威夷和阿拉斯加州没有).是否有可能知道我是否可以为夏威夷和阿拉斯加实施着色?

library(choroplethr) 
library(choroplethrMaps)
library(ggplot2) 
data(df_pop_county)

county_choropleth(df_pop_county, title = "Title1", legend = "Top 20% of Index", num_colors = 9) + 

geom_polygon(aes(fill=value), color="white")  + 

scale_fill_brewer(name="Top Index", palette="YlOrRd")
Run Code Online (Sandbox Code Playgroud)

maps r ggplot2 choropleth choroplethr

7
推荐指数
1
解决办法
849
查看次数

在ggplot中设置中断和标签

我把Shiny应用程序(下面)放在一起,显示了一个等级,除了传说中的科学符号外,它看起来很好.

我希望这些价值观为:'$ 5,000,000','$ 4,000,000'等等.

在此输入图像描述

代码归结为

g <-choroplethr(DF, lod="state", num_buckets = 1)
g <- g + scale_fill_gradient(high = "springgreen4", low= "grey90", name="Sum")
Run Code Online (Sandbox Code Playgroud)

我试过这个:

g <- q + scale_fill_gradient(high = "springgreen4", low= "grey90", name="Sum", labels = c("5,000,000", "4,000,000", "3,000,000", "2,000,000", "1,000,000"))  
Run Code Online (Sandbox Code Playgroud)

但我得到了错误,Breaks和标签是不同的长度

当我处理地图时,我不确定如何在x轴上指定断点?如何创建与我想要包含的标签一起使用的中断?谢谢.

maps r ggplot2 choroplethr

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

将复杂的HTML表刮到R中的data.frame中

我试图将维基百科关于美国最高法院大法官的数据加载到R:

library(rvest)

html = html("http://en.wikipedia.org/wiki/List_of_Justices_of_the_Supreme_Court_of_the_United_States")
judges = html_table(html_nodes(html, "table")[[2]])
head(judges[,2])

[1] "Wilson, JamesJames Wilson"       "Jay, JohnJohn Jay†"             
[3] "Cushing, WilliamWilliam Cushing" "Blair, JohnJohn Blair, Jr."     
[5] "Rutledge, JohnJohn Rutledge"     "Iredell, JamesJames Iredell"  
Run Code Online (Sandbox Code Playgroud)

问题是数据格式不正确.它不是出现在实际HTML表格中看到的名称("詹姆斯威尔逊"),而是实际出现两次,一次是"姓氏,名字",然后又是"名字姓氏".

原因是每个实际上都包含一个不可见的:

<td style="text-align:left;" class="">
    <span style="display:none" class="">Wilson, James</span>
    <a href="/wiki/James_Wilson" title="James Wilson">James Wilson</a>
</td>
Run Code Online (Sandbox Code Playgroud)

具有数字数据的列也是如此.我猜这个额外的代码是排序HTML表所必需的.但是,我不清楚在尝试从R中的表创建data.frame时如何删除这些跨度.

r rvest

6
推荐指数
1
解决办法
3982
查看次数

choroplethr,ggmap或ggplot2中的道路和半径圆

我正在使用library(choroplethr)一些市场分析,我有一些关于制作我的问题county_choropleth,或者将其覆盖在我的代码之上ggmap()reference_map=TRUE在我的代码中使用.我要做的就是把我的县城等一些地方放置州州际公路/高速公路,并在它上面绘制圆圈/半径.

我现在拥有的是:

library(choroplethr)
data <- Data.frame(County.FIPS = c(19153,19163,19153,19153,19153,19153,19153,19113,19007,19169), Score=c(812.6,769.5,757.9,757.2,722.6,712.4,69727,690.2,64539,642.5)
county <-aggregate(data$Score~data$County.FIPS,data=data,sum)
colnames(county) <- c("region", "value")
mp <- county_choropleth(county, state_zoom=c("iowa"), num_colors = 1) +
  theme(legend.position="none")+
  scale_fill_gradient2("Score", 
                       high = "dark green", 
                       low = "red", 
                       na.value = "grey90", 
                       breaks = pretty(county$value, n = 10), 
                       label = scales::dollar_format())
Run Code Online (Sandbox Code Playgroud)

......这给了我这个情节. 在此输入图像描述

从这里开始,我想要做的是将爱荷华州的主要州际公路覆盖在我的地图上,并创建一些半径圆圈以显示距离某些城市的距离.我希望它能从这张地图中获取元素并理想地将它们合并到我的choroplethr地图中,因为在我看来,它看起来比这个例子更清晰:在此输入图像描述

我用这段代码检索第二张地图:

library(ggmap)
test<-get_map(location = c(lon=-93.57217,lat=41.67269), maptype="roadmap",source="google",zoom=7,scale="auto")
yup <- data.frame(lon=c(-93.57217,-95.87509), lat=c(41.67269,41.23238),score=c(1,1))
ggmap(test) + stat_density2d(aes(x = lon, y = lat, fill = score,alpha=score), 
               size = 2, bins …
Run Code Online (Sandbox Code Playgroud)

google-maps r ggplot2 ggmap choroplethr

5
推荐指数
1
解决办法
600
查看次数

创建包含所有美国县失业数据的data.frame

我正在尝试使用美国劳工统计局的所有美国县失业数据创建一个data.frame:

http://www.bls.gov/lau/#cntyaa

从1990年到2013年,这些数据每年有一个结果.

我原本计划使用BLS API,但看起来他们认为每个县都是一个单独的查询,查询总数将超过其阈值.我现在认为简单地从他们放在网上的TXT文件中抓取数据可能更容易,但我在使用R解析数据时遇到问题.这是一个包含数据的示例页面:

http://www.bls.gov/lau/laucnty90.txt#90 = 1990

我最初尝试使用rvest包解析文件.但由于数据都在一个<p>标签中,我认为该工具的表格没有足够的HTML结构.

然后,我尝试download.fileread.table.但同样,这些工具的数据似乎不是正确的格式 - 顶部和底部的额外行,而"分隔字符"只是一个空格,当县名包含空格时会混淆R.

在一天结束时,我只需要一个data.frame,其中包含来自此文件的3个数据:状态FIPS代码,县FIPS代码和失业率.

我现在认为创建此data.frame的最简单方法可能是下载excel文件,删除我不需要的列,删除顶部和底部的额外文本,导出为CSV,然后读取它到R.

我可以在14年中的每一年都这样做.但是我失去了一些可重复性 - 其他人将无法轻易验证我在导入过程中没有犯错误.

有没有人看到更简单的方法来创建这个data.frame?

r rvest

3
推荐指数
1
解决办法
369
查看次数

一个州 Choropleth 地图内的县

我正在努力定制并找到正确的代码来构建我试图通过特定州的县的企业获利的等值线地图。

到目前为止,我所做的是能够绘制我的代码,尽管使用了我不想要的调色板和不受欢迎的中断。

library(choroplethr)
library(ggplot2)

county <- data.frame(region = c(19001,19013,19017,19019,19021,19023,19033,19035),
                 value=c(-37102,-41052,35016,-13180,-8062,6357,-46946,-5380))

county_choropleth(county, "Test", state_zoom = "iowa") + scale_fill_brewer("Test",palette="Blues")
Run Code Online (Sandbox Code Playgroud)

我得到这个情节:

在此处输入图片说明

理想情况下,我希望能够将调色板自定义为正时为蓝色,负时为红色。此外,在这两种颜色之间创建更多的色阶中断也是理想的。我想让休息更令人愉快的数字,例如“35,000”、“0”等,而不是 $35,016,哈哈。最后,我想根据 FIPS 代码将所有 NA 县设为灰色或与比例尺上出现的颜色不同的颜色。

我曾尝试使用 scale_colour_gradient 命令及其“兄弟”命令的不同变体,但未成功。

如果您需要任何说明或更多代码,请告诉我。感谢您的任何帮助!

r ggplot2 choropleth choroplethr

3
推荐指数
1
解决办法
1792
查看次数

R的choroplethr地图

关于等值线图的另一个问题即将到来.首先让我们制作一些数据.

`a<-c(4.1,2.5,0.4,6.4,1.4,1.8,3.8,1.3,2.3,8.4,5.2,1.9,0.8,1.5,2.1,1.2,3.8,1.4,3.1,0.8,4.0,1.3,4.8,2.6,2.8,2.3,3.1,2.5)
    target<-c("austria","belgium","bulgaria","switzerland","cyprus","czech republic","denmark",
"estonia","spain","finland","france","greece","croatia","hungary","ireland","italy",
"lithuania","luxembourg","latvia","norway","poland","portugal","romania","sweden",
"slovenia","slovakia","turkey","united kingdom")
datas<-data.frame(region=target,value=a)
datas$region<-as.character(datas$region)
install.packages("choroplethr")
install.packages("choroplethrMaps")
library(choroplethr)
library(choroplethrMaps)
data(country.map)
data(country.regions)


 gg <- country_choropleth(datas,legend="%",num_colors=1,zoom=target)
gg <- gg + xlim(-31.266001, 39.869301)
gg <- gg + ylim(27.636311, 81.008797)
gg <- gg + coord_map("lambert", lat0=27.636311, lat1=81.008797)
gg`
Run Code Online (Sandbox Code Playgroud)

所以输出是 在此输入图像描述

我无法调整的是让一个国家变得无色.如果我将国家/地区的值设置为0,则会大幅改变其他国家/地区的颜色比例.我的目标是在地图中添加我没有数据的国家/地区,并将其颜色设置为灰色以使地图更加逼真,并指出我拥有数据的国家/地区.

r choropleth choroplethr

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

在R地图中使用FIPS代码对县进行着色

我正在寻找一种在R中的美国地图上给县添加阴影的方法。我有一个数字/字符县FIPS代码列表,可以将其输入作为参数。我只需要突出显示这些县-所以只需要阴影它们,就没有对应于这些县的值或变体。我试图抬头

 library(choroplethr)
 library(maps)
Run Code Online (Sandbox Code Playgroud)

county_choropleth(df_pop_county)

head(df_pop_county)
    region  value
 1   1001  54590
 2   1003 183226
 3   1005  27469
 4   1007  22769
 5   1009  57466
 6   1011  10779
Run Code Online (Sandbox Code Playgroud)

但是这些需要区域,价值对。例如,上面的fip代码和填充。有没有一种方法可以仅使用fipscode数据框来调用county_choropleth函数而不必使用值。这样,我就可以用一种颜色编码我的fips。使用Choroplethr在R中完成此任务的有效方法是什么?

maps r fips rmaps choroplethr

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

标签 统计

r ×11

choroplethr ×8

ggplot2 ×6

choropleth ×5

maps ×3

ggmap ×2

rvest ×2

fips ×1

google-maps ×1

rmaps ×1

sankey-diagram ×1

tibble ×1