首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggplot geom_col:使某些轴计数为整数而不是求和

ggplot geom_col:使某些轴计数为整数而不是求和
EN

Stack Overflow用户
提问于 2021-06-08 00:42:25
回答 1查看 24关注 0票数 0

我现在正在做一个仇恨犯罪的案例研究。在我的绘图中,我使用一个邮政编码作为y轴,并使用geom-col在x轴上绘制了有多少犯罪以及哪个群体成为目标。问题是我的y轴将邮政编码相加在一起,而不是计算邮政编码出现的次数。下面是我的数据集:

代码语言:javascript
复制
structure(list(ID = 1:5, CRIME_TYPE = c("VANDALISM", "ASSAULT", "VANDALISM", "ASSAULT", 
"OTHER"), BIAS_MOTIVATION_GROUP = c("ANTI-BLACK                                   ", 
"ANTI-BLACK                                   ", "ANTI-FEMALE HOMOSEXUAL (LESBIAN)             ", 
"ANTI-MENTAL DISABILITY                       ", "ANTI-JEWISH                                  "),
 ZIP_CODE = c(40291L, 40219L, 40243L, 40212L, 40222L
)), row.names = c(NA, 5L), class = "data.frame")

下面是我的代码:

代码语言:javascript
复制
library(ggplot2)
df <- read.csv(file = "LMPD_OP_BIAS.csv", header = T)    
library(tidyverse)
hate_crime <- df %>%
  filter(ZIP_CODE == "40245")

hate_crime_plot <- hate_crime %>%
  ggplot(., aes(x = BIAS_MOTIVATION_GROUP, y = ZIP_CODE, fill = 
                  BIAS_MOTIVATION_GROUP)) +
  geom_col() + labs(x = "BIAS_MOTIVATION_GROUP", fill = "BIAS_MOTIVATION_GROUP") +
  theme_minimal() + 
  theme(axis.text.x=element_text (angle =45, hjust =1))
print(hate_crime_plot)

hate_crime_ploter <- hate_crime %>%
  ggplot(., aes(x = UOR_DESC, y = ZIP_CODE, fill = 
                  UOR_DESC)) +
  geom_col() + labs(x = "UOR_DESC", fill = "UOR_DESC") +
  theme_minimal() + 
  theme(axis.text.x=element_text (angle =45, hjust =1))
print(hate_crime_ploter)

有关完整数据,请访问此处:visit site to download data set

EN

回答 1

Stack Overflow用户

发布于 2021-06-08 05:59:01

好的,我想你有几个问题。在您的代码中发生的事情是,您要求ggplot在x轴上绘制一个分类变量(BIAS_MOTIVATION_GROUPUOR_DESC),在y轴上绘制一个连续变量(ZIP_CODE)的条形图。由于每个x-y组合有多行,ggplot将x值加在一起,这是您在条形图中所期望的。长话短说,我想知道您实际上想要的是否是直方图。您的数据集(hate_crime)只有一个值ZIP_CODE,所以我不确定在y轴上绘制Zip值应该是什么。直方图如下所示:

代码语言:javascript
复制
hate_crime %>%
  ggplot(., aes(x = UOR_DESC, , fill = UOR_DESC)) +
  geom_histogram(stat = "count") + 
  labs(x = "UOR_DESC", fill = "UOR_DESC") +
  theme_minimal() + 
  theme(axis.text.x=element_text (angle =45, hjust =1))

相反,如果您试图可视化每个邮政编码在每个类别中出现的频率,则必须以不同的方式处理问题。也许你正在寻找这样的东西?

代码语言:javascript
复制
df %>%
  ggplot(aes(x = UOR_DESC, fill = factor(ZIP_CODE))) +
  geom_histogram(stat = "count") + 
  theme(axis.text.x=element_text (angle =45, hjust =1))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67875615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档