如何在ggplot中按类别分类绘制答案?

时间:2019-05-20 13:11:16

标签: r ggplot2 plot tibble

我创建了这样一个小标题:

const arr = [{a: 10, b: 20, c: 30},{a: 15, b: 25, c: 32},{a: 10, b: 23, c: 350}];

const indices = arr.map((x, index) => {
	if (x.a === 10) {
		return index;
	}
})
.filter(x => x !== undefined);

console.log(indices);

现在,我想知道每个地区的住房类型。由于每个地区的受访者人数有所不同,因此我想使用百分比。基本上我正在寻找两个地块;

1)一个条形图,其中住房类别的百分比以每区1条的形式可视化(因为这是百分比,所有条形的高度均相等)。 2)每个地区的饼图,以及该地区的住房类别百分比。

但是,我无法按照期望的方式对数据进行分组,一起计算它们的百分比。如何制作这些图?

谢谢!

1 个答案:

答案 0 :(得分:1)

试一下:

library(tidyverse)
library(ggplot2)

# original data
df <- data.frame(district = c(1, 5, 3, 5, 2, 7, 8, 1, 1, 2, 2, 4, 5, 6, 8, 6, 3),
                 housing = c(1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 3, 2, 1, 1, 1, 3, 2))

# group by district
df <- df %>%
  group_by(district) %>%
  summarise(housing=sum(housing))

# make percentages
df <- df %>%
  mutate(housing_percentage=housing/sum(df$housing)) %>%
  mutate(district=as.character(district)) %>%
  mutate(housing_percentage=round(housing_percentage,2))

# bar graph
ggplot(data=df) +
  geom_col(aes(x=district, y=housing_percentage))

# pie chart
ggplot(data=df, aes(x='',y=housing_percentage, fill=district)) +
  geom_bar(width = 1, stat = "identity", color = "white") +
  coord_polar("y", start = 0) +
  theme_void()

产生以下图:

bar_plot

pie_chart