相关疑难解决方法(0)

使用R和ggplot2绘制金字塔图

我需要绘制一个金字塔图,就像附图一样.

替代文字

我从这里找到了一个使用R(但不是ggplot)的例子,有人能给我一些使用ggplot做这个的暗示吗?谢谢!

r ggplot2

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

ggplot2中共享轴的两个水平条形图(类似于人口金字塔)

我想在一个类似于人口金字塔的图上绘制两个变量:

情节

由于我将在下面列出的原因,这个情节几乎存在但不完全.

我使用以下代码制作了这个图:

DATA <- data.frame(
    state = c("AK", "TX", "CA", "MT", "NM", "AZ", "NV", "CO", "OR", "WY", "MI", "MN", "UT", "ID", "KS", "NE", "SD", "WA", "ND", "OK"),
    sales_staff = c(20,30,40,10,15,35,18,25,22,7,12,22,3,4,5,8,14,28,24,32)
)

set.seed(1)
DATA$sales <- DATA$sales_staff * 50 + (runif(nrow(DATA)) * 1000)

# Order the state factor by number of sales staff so that it is plotted in that order
DATA$state <- factor(DATA$state, levels = DATA[order(DATA$sales_staff),"state"])
Run Code Online (Sandbox Code Playgroud)

我想背靠背"粘合"两个图,所以我使用了多个()函数来自http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_%28ggplot2%29/

(为简洁起见,我不会在这里重现该功能的代码)

我的最终情节代码是:

library(ggplot2)

g1 <- ggplot(data = DATA, aes(x = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

r中的人口金字塔密度图

我想创建如下的金字塔密度图:

在此输入图像描述

我可以达到的点是基于以下示例示例的simlele金字塔图:

set.seed (123)
xvar <- round (rnorm (100, 54, 10), 0)
xyvar <- round (rnorm (100, 54, 10), 0)
myd <- data.frame (xvar, xyvar)
valut <- as.numeric (cut(c(myd$xvar,myd$xyvar), 12))
myd$xwt <- valut[1:100]
myd$xywt <- valut[101:200]
xy.pop <- data.frame (table (myd$xywt))
xx.pop <- data.frame (table (myd$xwt))


 library(plotrix)
 par(mar=pyramid.plot(xy.pop$Freq,xx.pop$Freq,
    main="Population Pyramid",lxcol="blue",rxcol= "pink",
  gap=0,show.values=F))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我怎样才能做到这一点?

plot r graph ggplot2

13
推荐指数
3
解决办法
3996
查看次数

R中的人口金字塔w投影

我想在R 中创建人口金字塔。我知道 StackOverflow 上有很多例子,但我想创建一个还包括人口预测的例子,即每个年龄组的条形按性别和按性别和年龄组划分的线条用于预测。

你可以在这里看到一个例子:http : //geographyblog.eu/wp/the-worlds-population-pyramid-is-changed-shape/

在此处输入图片说明

如果有一些关于如何更好地说明这一点的建议(例如使用平滑线),也欢迎提出,但我想指出当前的情况和预测。示例数据可在联合国网站上找到:http : //esa.un.org/wpp/population-pyramids/population-pyramids_absolute.htm

任何帮助将不胜感激。

plot visualization r

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

R中的金字塔图

对于示例数据集,我按国家/地区创建金字塔图,显示人口中超重男性和女性的级别(%).

library(plotrix)
xy.males.overweight<-c(23.2,33.5,43.6,33.6,43.5,43.5,43.9,33.7,53.9,43.5,43.2,42.8,22.2,51.8,
          41.5,31.3,60.7,50.4)
    xx.females.overweight<-c(13.2,9.4,13.5,13.5,13.5,23.7,8,3.18,3.9,3.16,23.2,22.5,22,12.7,12.5,
              12.3,10,0.8)
    agelabels<-c("uk","scotland","france","ireland","germany","sweden","norway",
                     "iceland","portugal","austria","switzerland","australia","new zealand","dubai","south africa",
                     "finland","italy","morocco")

    par(mar=pyramid.plot(xy.males.overweight,xx.females.overweight,labels=agelabels,
                                 gap=9))
Run Code Online (Sandbox Code Playgroud)

我在这里使用'plotrix'找到了这种方法:https://stats.stackexchange.com/questions/2455/how-to-make-age-pyramid-like-plot-in-r

我希望创建一个稍微更详细的金字塔图,两边都添加一个堆积条形图,显示男性和女性的超重和百分比肥胖(最好是红色/蓝色的不同色调)."肥胖"的示例数据值如下:

xx.females.obese<-c(23.2,33.5,43.6,33.6,43.5,23.5,33.9,33.7,23.9,43.5,18.2,22.8,22.2,31.8,
                       25.5,25.3,31.7,28.4)
xy.males.obese<-c(13.2,9.4,13.5,13.5,13.5,23.7,8,3.18,3.9,3.16,23.2,22.5,22,12.7,12.5,
                  12.3,10,0.8)
Run Code Online (Sandbox Code Playgroud)

此外,如果图表上的"年龄"可以更改(到国家/地区),那将有所帮助.

非常感谢您的任何帮助/建议.我愿意在适当时使用plotrix或ggplot2.

plot r ggplot2

4
推荐指数
2
解决办法
5341
查看次数

如何继续到R中的下一行?

如果R中的命令太长,是否可以将其余部分写到下一行?

例如

tmp   =  -0.00773 + 1.5657  -0.9391  + 0.4753   - 0.1019   -0.00495

tmp   =  -0.00773 + 1.5657  -0.9391  
         + 0.4753   - 0.1019   -0.00495
Run Code Online (Sandbox Code Playgroud)

会给出不同的结果。

谢谢!

r

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

人口金字塔图与ggplot2和dplyr(而不是plyr)

我试图从ggplot2中的后简化人口金字塔中重现简单的人口金字塔

使用ggplot2dplyr(而不是plyr).

这是原始示例plyr和种子

set.seed(321)
test <- data.frame(v=sample(1:20,1000,replace=T), g=c('M','F'))

require(ggplot2)
require(plyr)    
ggplot(data=test,aes(x=as.factor(v),fill=g)) + 
  geom_bar(subset=.(g=="F")) + 
  geom_bar(subset=.(g=="M"),aes(y=..count..*(-1))) + 
  scale_y_continuous(breaks=seq(-40,40,10),labels=abs(seq(-40,40,10))) + 
  coord_flip()
Run Code Online (Sandbox Code Playgroud)

与ggplot2和plyr的金字塔情节

工作良好.

但是我怎样才能生成相同的情节dplyr呢?该示例plyrsubset = .(g ==语句中使用.

我尝试过以下内容dplyr::filter但出现错误:

require(dplyr)
ggplot(data=test,aes(x=as.factor(v),fill=g)) + 
  geom_bar(dplyr::filter(test, g=="F")) + 
  geom_bar(dplyr::filter(test, g=="M"),aes(y=..count..*(-1))) + 
  scale_y_continuous(breaks=seq(-40,40,10),labels=abs(seq(-40,40,10))) + 
  coord_flip()

Error in get(x, envir = this, inherits = inh)(this, ...) : 
  Mapping should be a list of unevaluated mappings created by aes or aes_string
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2 plyr dplyr

3
推荐指数
2
解决办法
3997
查看次数

为R金字塔图添加平滑线

请帮我在R金字塔图中添加平滑线条(图中所示的粗黑线),如附图所示.感谢您的帮助.该图显示了根据年龄和性别的人口分布.

xy.pop<-c(3.2,3.5,3.6,3.6,3.5,3.5,3.9,3.7,3.9,3.5,3.2,2.8,2.2,1.8,1.5,1.3,0.7,0.4)
xx.pop<-c(3.2,3.4,3.5,3.5,3.5,3.7,4,3.8,3.9,3.6,3.2,2.5,2,1.7,1.5,1.3,1,0.8)
agelabels<-c("0-4","5-9","10-14","15-19","20-24","25-29","30-34",
         "35-39","40-44","45-49","50-54","55-59","60-64","65-69","70-74",
         "75-79","80-44","85+")
mcol<-color.gradient(c(0,0,0.5,1),c(0,0,0.5,1),c(1,1,0.5,1),18)
fcol<-color.gradient(c(1,1,0.5,1),c(0.5,0.5,0.5,1),c(0.5,0.5,0.5,1),18)
par(mar=pyramid.plot(xy.pop,xx.pop,labels=agelabels,main="Australian population pyramid 2002",lxcol=mcol,rxcol=fcol,))
Run Code Online (Sandbox Code Playgroud)

r

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

用ggplot2绘制发散堆积的条形图

有没有一种方法可以ggplot2用来创建不同的堆叠条形图,如下面图像右图所示?

在此处输入图片说明

数据可重复的例子

library(ggplot2)
library(scales)
library(reshape)

dat <- read.table(text = "    ONE TWO THREE
                  1   23  234 324
                  2   34  534 12
                  3   56  324 124
                  4   34  234 124
                  5   123 534 654",sep = "",header = TRUE)

# reshape data
datm <- melt(cbind(dat, ind = rownames(dat)), id.vars = c('ind'))

# plot
ggplot(datm,aes(x = variable, y = value,fill = ind)) + 
  geom_bar(position = "fill",stat = "identity") +
  coord_flip()
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

标签 统计

r ×9

ggplot2 ×6

plot ×4

dplyr ×1

graph ×1

plyr ×1

visualization ×1