相关疑难解决方法(0)

ggplot2中更简单的人口金字塔

我想用ggplot2创建一个人口金字塔.之前曾问这个问题,但我相信解决方案必须简单得多.

test <- (data.frame(v=rnorm(1000), g=c('M','F')))
require(ggplot2)
ggplot(data=test, aes(x=v)) + 
    geom_histogram() + 
    coord_flip() + 
    facet_grid(. ~ g)
Run Code Online (Sandbox Code Playgroud)

生成此图像.在我看来,这里创建人口金字塔的唯一步骤是反转第一个方面的x轴,使其从50变为0,同时保持第二个不变.有人可以帮忙吗?

人口金字塔

r ggplot2

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

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中的金字塔图

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

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如何在ggplot2中为金字塔添加facet标签

我创建了金字塔,如图,我想为图的每一面添加标签(类似于构面标签).

我的数据:

dt <- data.frame(Answer = factor(x = rep(x = c(1:3), times = 2), 
                                 labels = c("Yes", "No", "Maybe")), 
                 Gender = factor(x = rep(x = c(1:2), each = 3),
                                 labels = c("Female", "Male")), 
                 Prc = c(74.4, 25.0, 0.6, 61.3, 35.5, 3.2), 
                 label = c("74.4%", "25.0%", "0.6%", "61.3%", "35.5%", "3.2%")) 
Run Code Online (Sandbox Code Playgroud)

我的情节:
金字塔喜欢情节

我的剧情生成代码:

xmi <- -70
xma <- 80

library(ggplot2)
ggplot(data = dt, aes(x = Answer, fill = Gender)) +
    geom_bar(stat = "identity", subset = .(Gender == "Female"), aes(y = Prc)) + …
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2

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

标签 统计

ggplot2 ×4

r ×4

facet ×1

plot ×1